C# WPF绑定列表是从datagrid更新的,但我没有';我不想要它

C# WPF绑定列表是从datagrid更新的,但我没有';我不想要它,c#,wpf,xaml,data-binding,datagrid,C#,Wpf,Xaml,Data Binding,Datagrid,我是WPF/C的新手,绑定方面遇到了麻烦:( 我的主窗口中有一个从列表绑定的列表视图。 我有一个带有datagrid的第二个窗口,它绑定自另一个列表(第一个列表的副本) 我的问题是,当我从datagrid(第二个窗口)更新数据时,它也会从第一个窗口升级数据,但我不希望它。(我希望第一个列表独立于另一个) 以下是第一个窗口中的代码: public partial class MainWindow : Window { List<Voiture> mesBagnoles = ne

我是WPF/C的新手,绑定方面遇到了麻烦:(

我的主窗口中有一个从列表绑定的列表视图。
我有一个带有datagrid的第二个窗口,它绑定自另一个列表(第一个列表的副本)

我的问题是,当我从datagrid(第二个窗口)更新数据时,它也会从第一个窗口升级数据,但我不希望它。(我希望第一个列表独立于另一个)

以下是第一个窗口中的代码:

public partial class MainWindow : Window
{
    List<Voiture> mesBagnoles = new List<Voiture>();

    public MainWindow()
    {
        InitializeComponent();
        ...
        lstViewBagnoles.ItemsSource = mesBagnoles;
        ...
    }
}
第二窗口:

public partial class VoituresWindow : Window
{

    public List<Voiture> listBagnoles = new List<Voiture>();
    
    public VoituresWindow(List<Voiture> e)
    {
        listBagnoles = e;
        InitializeComponent();
        dataVoitures.ItemsSource = listBagnoles;
    }
}
据此:

    private void btnVoitures_Click(object sender, RoutedEventArgs e)
    {
        List<Voiture> mesBagnoles2 = new List<Voiture>(mesBagnoles);
        VoituresWindow voitureWindow = new VoituresWindow(mesBagnoles2);
        voitureWindow.ShowDialog();
    }
private void btnvoices\u单击(对象发送方,路由目标)
{
列表mesBagnoles 2=新列表(mesBagnoles);
VoituresWindow voitureWindow=新VoituresWindow(mesBagnoles2);
voitureWindow.ShowDialog();
}
但第一个窗口列表视图始终由第二个窗口数据网格更新:/
我认为我的绑定有问题,正如sa_ddam213&Mike Schartz所说,您将相同的列表传递到第二个窗口,或者正如我所看到的,您需要此窗口的副本


只需初始化另一个列表并使用mesBagnoles的值影响它。

这是同一个列表,您将对它的引用传递到了构造函数中的
VoituresWindow
,然后将相同的mesBagnoles传递到第二个窗口。初学者错误:)我只是从第一个列表创建了一个新列表,它工作得非常好。谢谢:)
public partial class VoituresWindow : Window
{

    public List<Voiture> listBagnoles = new List<Voiture>();
    
    public VoituresWindow(List<Voiture> e)
    {
        listBagnoles = e;
        InitializeComponent();
        dataVoitures.ItemsSource = listBagnoles;
    }
}
 <DataGrid x:Name="dataVoitures" Grid.Row="0" AutoGenerateColumns="False" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="Marque" Binding="{Binding Marque}" />
            <DataGridTextColumn Header="Modèle" Binding="{Binding Modele}" />
            <DataGridTextColumn Header="Moteur" Binding="{Binding Moteur}" />
            ...
        </DataGrid.Columns>
</DataGrid>
private void btnVoitures_Click(object sender, RoutedEventArgs e)
{
    VoituresWindow voitureWindow = new VoituresWindow(mesBagnoles);
    voitureWindow.ShowDialog();
}
    private void btnVoitures_Click(object sender, RoutedEventArgs e)
    {
        List<Voiture> mesBagnoles2 = new List<Voiture>(mesBagnoles);
        VoituresWindow voitureWindow = new VoituresWindow(mesBagnoles2);
        voitureWindow.ShowDialog();
    }