实体框架orderby不更新datagrid

时间:2012-07-03 21:13:13

标签: wpf entity-framework datagrid sqlite sql-order-by

我是C#,MVVM,WPF和Entity Framework的新手

我的问题是,如果我订购数据库的读取(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();

我在DataGrid上的XAML绑定:

ItemsSource="{Binding EntityBuchungsView.View}"

和我的列绑定;

Binding="{Binding Name}" 

到目前为止,我使用_database.Buchung.AddObject(test);然后使用_database.SaveChanges();,我的DataGrid已更新。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果有人遇到像我这样的问题

我确实实现了一种刷新视图的新方法:

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

然后它起作用了