DataGridとMVVMを使用して行を追加する方法

私は編集可能なDataGridを含むWPF MVVMアプリケーションを持っています。私はViewModelのプロパティにDG SelectedItemイベントを登録しています。これは、既存のレコードを変更し、データベースに変更を保存するのに適しています。

しかし、新しい行がいつ作成されるのかをどのようにして知ることができますか? DGで新しい行をクリックすると、SelectedItemイベントは発生しません。新しい行が作成され、既存の行をクリックすると、SelectedItemイベントが発生しますが、EntityStateは行が追加されたことを認識しません。 DG内のDBに新しい行を追加するにはどうすればよいですか?または、これを達成するためのより良い方法がありますか?

これは私が現在やっていることです:

Xaml:


ViewModel:

public Contact SelectedItemContact
{
    get { return _selectedItemContact; }
    set
    {
        if (value != _selectedItemContact)
        {
                bool changesMade = Repository.Context.
                ObjectStateManager.
                GetObjectStateEntries(EntityState.Added |
                EntityState.Deleted |
                EntityState.Modified
                ).Any();
            if (changesMade)
            {
                Repository.Context.SaveChanges();
                MessageBox.Show("Changes Saved!");
            }
                _selectedItemContact = value;
            OnPropertyChanged("SelectedItemContact");
        }
}
1

1 答え

This could be considered a duplicate of this: WPF DataGrid - Event for New Rows?

それがあなたを助けるかどうかを見てください。

1
追加された
これはコメントだったはずです。
追加された 著者 d.moncada,