0

我有一个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;
        }

ObservableCollectiondatabase. _ 当我启动程序时,我可以看到所有条目。现在我选择一个codeElement并删除它。中codeElement删除了,database但我DataGrid的是空的。

            CodeElement code = dtGCode.SelectedItem as CodeElement;
            DBAnbindung.DeleteCode(code);
            codeElementList.Clear();
            codeElementList = DBAnbindung.LoadCodeList();

我究竟做错了什么?如果你想看看我是如何加载的dataObservableCollection告诉谦虚

4

2 回答 2

1

嗨尝试添加而不是分配新列表

codeElementList.AddRange(DBAnbindung.LoadCodeList());

或者

foreach(var item in DBAnbindung.LoadCodeList())
     codeElementList.Add(item);
于 2013-03-26T11:24:24.913 回答
1

问题出在这一行

 codeElementList = DBAnbindung.LoadCodeList();

您正在ObservableCollectioncodeElementListso 分配另一个,dtGCode.ItemsSource并且 newcodeElementList不会指向内存中的同一个对象。然后,当您对codeElementList实际进行更改时,您并没有更改 dtGCode.ItemsSource.

于 2013-03-26T11:30:06.327 回答