2012-07-03 4 views
0

Я новичок в C#, MVVM, WPF и Entity FrameworkEntity Framework OrderBy не обновляет DataGrid

моя проблема, если я заказываю чтение базы данных (OrderBy) сетка данные не будут изменены, если я добавьте новую строку. если я не заказываю чтение, это работает.

так аддитивных информация о:

моя база данных выглядит следующим образом

Table Konto 
KontoID 
KontoName 

Table Buchung 
KontoID 
BuchungsID 
Name 
BuchDate 

после загрузки Конто она будет загружать все связанные с Buchungen

_entityKontoView = new CollectionViewSource(); 
_entityBuchungView = new CollectionViewSource(); 
// Loads the Konto 
_entityKontoView.Source = _database.Konto; 

_entityKontoView.View.CurrentChanged += (x, y) => 
{ 
    _entityBuchungView.Source = ((Konto)_entityKontoView.View.CurrentItem).Buchung 
      //.OrderBy(date => date.BuchDate) 
       //.ThenBy(buchnr => buchnr.BuchungsID) 
       ; 
}; 
_entityKontoView.View.Refresh(); 

когда я делаю теперь OrderBy сетке данных не будет обновляться после новых вставленных строк

я открыть объект базы данных следующим образом:

моего XAML обязательного DataGrid:

ItemsSource="{Binding EntityBuchungsView.View}" 

и мои колонки связывания;

Binding="{Binding Name}" 

, насколько я использовал _database.Buchung.AddObject(test); и затем _database.SaveChanges(); и мой DataGrid был обновлен.

что делать, если я ошибаюсь?

+0

Вы, вероятно, нужно вызвать '.ToList() 'после orderby (или любого другого вызова, который перечисляет объект, например' AsEnumerable() '). 'OrderBy()' перенастраивает объект отложенного выполнения. – Tyrsius

+0

просто попробовал это, но ничего не случилось – domiSchenk

ответ

0

если кто-нибудь есть такая же проблема, как я

я сделал реализовать новый метод для обновления вида:

public static void RefreshView(CollectionViewSource entity) 
{ 
    entity.View.Refresh(); 
} 

тогда работал

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