2016-07-08 2 views
4

WPF MVVMプロジェクトで作業しています。MVVMバインドプロパティの内部プロパティが変更される時期を知る方法?

私は、モデルのエンティティプロパティにバインディングのTextBlockを持っている:このMyEntity.Nameエンティティが変更されたとき

<TextBox Text="{Binding MyEntity.Name}"/> 

は私がフラグを更新することにしたいです。 どうすればいいですか?

私は明らかに、専用のプロパティ名を設定できます。

public string Name 
{ 
get 
    { 
    return MyEntity.Name; 
    } 
set 
    { 
    ... 
    } 
} 

をしかし、私はあなたたちはもっとエレガントな方法を提案します確信しています。

+2

したがって、 'MyEntity'は' INotifyPropertyChanged'を実装していませんか? –

+0

いいえ......................... –

+1

ソースコードがない場合は、MyEntityクラスのINotifyPropertyChangedを実装してラッパーを作成し、添付しますPropertyChangedEvent on –

答えて

0

エンティティクラスが変更インターフェイスを実装していない場合は、おそらくラッパープロパティを作成し、エンティティがであるかどうか確認する必要があります。のみがアクセスします。おそらく、あなたのためのすべての定型文を書くことができるコード生成ツールがあります。

0

デリゲートとイベントを作成します。プロパティMyEntity.Nameが変更されたときにイベントを発生させます。

パブリック文字列名 {

get 
    { 
    return MyEntity.Name; 
    } 
set 
    { 
     // Raise the event here 
    } 
} 

は、イベントを処理し、ビュー内のフラグを設定します。

関連する問題