我有DataGrid
,从ObservableCollection
获取数据。
我的ObservableCollection
:
public ObservableCollection<CodeElement> _codeElementList;
public ObservableCollection<CodeElement> codeElementList
{
get { return _codeElementList; }
set
{
if (value != _codeElementList)
{
_codeElementList = value;
OnPropertyChanged("codeElementList");
}
}
}
我也测试了ObservableCollection
:
public ObservableCollection<CodeElement> codeElementList { get; set; }
分配
public MainWindow()
{
InitializeComponent();
codeElementList = DBAnbindung.LoadCodeList();
dtGCode.ItemsSource = codeElementList;
}
ObservableCollection
从database
获取数据。当我启动程序时,我可以看到所有条目。现在我选择codeElement
并删除它。 codeElement
中删除了database
,但我的DataGrid
为空。
CodeElement code = dtGCode.SelectedItem as CodeElement;
DBAnbindung.DeleteCode(code);
codeElementList.Clear();
codeElementList = DBAnbindung.LoadCodeList();
我做错了什么?
如果您想了解我如何在data
加载ObservableCollection
,请告诉谦虚
答案 0 :(得分:1)
您尝试添加而不是分配新列表
codeElementList.AddRange(DBAnbindung.LoadCodeList());
或强>
foreach(var item in DBAnbindung.LoadCodeList())
codeElementList.Add(item);
答案 1 :(得分:1)
问题出在这一行
codeElementList = DBAnbindung.LoadCodeList();
您正在为ObservableCollection
分配另一个codeElementList
,因此dtGCode.ItemsSource
新codeElementList
不会指向内存中的同一个对象。然后,当您对codeElementList
进行更改时,实际上您并未更改dtGCode.ItemsSource
。