2013-03-26 4 views
0

У меня есть DataGrid, которые получают его данные от ObservableCollection.Обновление DataGrid

мой 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, скажите скромный

ответ

1

Привет попытаться добавить вместо назначения нового списка

codeElementList.AddRange(DBAnbindung.LoadCodeList()); 

ИЛИ

foreach(var item in DBAnbindung.LoadCodeList()) 
    codeElementList.Add(item); 
+0

спасибо, что это работает! у моего ObservableCollection нет функции «AddRange», но ваш ответный способ очень полезен –

+0

Да AddRange - метод расширения для ObservableCollection в Microsoft.Practices.Prism – ethicallogics

1

Проблема заключается в том в этой строке

codeElementList = DBAnbindung.LoadCodeList(); 

Вы назначаете ObservableCollectioncodeElementList так, чтобы dtGCode.ItemsSource и новый codeElementList не указывали на тот же объект в памяти. Затем, когда вы вносите изменения в codeElementList, вы фактически не меняете dtGCode.ItemsSource.

+0

О, это так. я скучаю по этому –

Смежные вопросы