0

たとえば、保留中の変更がある各ドキュメントの横にある Visual Studio の赤い点のような視覚的な合図が必要な場合、モデルがエンティティ フレームワーク モデルである MVVM を使用してそれを実装する通常の方法は何ですか? ビュー モデル レベルで IsDirty フラグを保持するだけですか? エンティティが更新されたかどうかを確認するために、db コンテキストで DetectChanges を呼び出し続けたくないと思います。

4

1 に答える 1

0

モデル オブジェクトが INotifyPropertyChange を実装している場合は、いつでも PropertyChanged イベントをタップできます。プロパティが同じ値に設定されていることを確認するとします。たとえば、次のようになります。

public string Name
{
    get { return _name; }
    set
    {
        if(_name == value) return;
        _name = value;
        RaisePropertyChanged("Name");
    }
}

モデルのプロパティがViewModelから変更されているかどうを確認し、ViewModelのフラグを介してそのアイコンを表示/非表示にできます。次のようなものです。

public class TreeItemViewModel
{
    public TreeViewModel(TreeItem model)
    {
        model.PropertyChanged += OnTreeItemModified();
    }

    private void OnTreeItemModified(object sender, EventArgs e)
    {
       DisplayIcon = true;
    }
}
于 2012-11-20T23:00:15.263 に答える