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;
        }

から彼のObservableCollectionデータを取得しますdatabase。プログラムを起動すると、すべてのエントリが表示されます。今、私はそれを選択しcodeElementて削除します。codeElementで削除されましたdatabaseが、私のはDataGrid空です。

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

私は何が間違っているのですか?data私がどのように私のをロードするかを見たい場合はObservableCollection、控えめに言ってください

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();

soに別のものを割り当てObservableCollectionているcodeElementListので dtGCode.ItemsSource、newcodeElementListはメモリ内の同じオブジェクトを指しません。次に、codeElementList実際に変更を加えても、は変更されません dtGCode.ItemsSource

于 2013-03-26T11:30:06.327 に答える