C# 更新数据网格
我有一个C# 更新数据网格,c#,wpf,binding,observablecollection,C#,Wpf,Binding,Observablecollection,我有一个数据网格,它从一个可观察的集合获取他的数据 我的可观察到的采集: public ObservableCollection<CodeElement> _codeElementList; public ObservableCollection<CodeElement> codeElementList { get { return _codeElementList; } set { if (value != _codeElemen
数据网格
,它从一个可观察的集合
获取他的数据
我的<代码>可观察到的采集:
public ObservableCollection<CodeElement> _codeElementList;
public ObservableCollection<CodeElement> codeElementList
{
get { return _codeElementList; }
set
{
if (value != _codeElementList)
{
_codeElementList = value;
OnPropertyChanged("codeElementList");
}
}
}
分配
public MainWindow()
{
InitializeComponent();
codeElementList = DBAnbindung.LoadCodeList();
dtGCode.ItemsSource = codeElementList;
}
observedcollection
从数据库中获取数据。当我启动程序时,我可以看到所有条目。现在我选择一个codelement
并将其删除。在数据库中删除codelement
,但myDataGrid
为空
CodeElement code = dtGCode.SelectedItem as CodeElement;
DBAnbindung.DeleteCode(code);
codeElementList.Clear();
codeElementList = DBAnbindung.LoadCodeList();
我做错了什么?
如果您想查看我如何在我的可观察集合中加载数据
,请告诉我如何添加而不是分配新列表
codeElementList.AddRange(DBAnbindung.LoadCodeList());
或
foreach(var item in DBAnbindung.LoadCodeList())
codeElementList.Add(item);
问题就在这条线上
codeElementList = DBAnbindung.LoadCodeList();
您正在将另一个ObservableCollection
分配给codeElementList
sodtGCode。ItemsSource
和新的codeElementList
将不会指向内存中的同一对象。然后,当您更改codelementlist
时,实际上您并没有更改dtGCode.ItemsSource
谢谢您,它可以正常工作!我的ObservableCollection没有函数“AddRange”,但您的第二种方法非常有用是的AddRange是Microsoft.Practices.Prism中ObservableCollection的扩展方法
codeElementList = DBAnbindung.LoadCodeList();