0

C#、MVVM、WPF、EntityFrameworkは初めてです

私の問題は、データベースの読み取りを注文した場合(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が更新されました。

私は何を間違っていますか?

4

1 に答える 1

0

誰かが私のような同じ問題を抱えているなら

ビューを更新するための新しいメソッドを実装しました:

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

それからそれは働いた

于 2012-12-20T16:00:36.313 に答える