我是C#,MVVM,WPF和实体框架的新手
我的问题是,如果我订购数据库的读取(orderby),如果我添加新行,数据网格将不会更改。 如果我不订购阅读,它可以工作。
所以补充信息:
我的数据库看起来像这样
Table Konto
KontoID
KontoName
Table Buchung
KontoID
BuchungsID
Name
BuchDate
加载 Konto 后,它将加载所有相关的 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
时,数据网格在新插入的行后不会更新
我按如下方式打开数据库实体:
public static databaseEntities _database = new databaseEntities();
我在数据网格上的 XAML 绑定:
ItemsSource="{Binding EntityBuchungsView.View}"
和我的列绑定;
Binding="{Binding Name}"
就我而言,我使用了_database.Buchung.AddObject(test);
然后_database.SaveChanges();
和我的 DataGrid 得到了更新。
我假了什么?
如果有人像我一样有同样的问题
我确实实现了一种刷新视图的新方法:
public static void RefreshView(CollectionViewSource entity)
{
entity.View.Refresh();
}
然后它工作了