0

クラス ChildViewModel : ParentViewModel

class ParentViewModel has -> public string PropertyA; パブリック文字列 PropertyB;

親用と子用の 2 つの screentab ワークフローがあります (明らかに親データに依存します)。スクリーンタブをparentViewに変更してPropertyAを変更するたびに、childViewに自動的に反映されるように、PropertyAをchildViewのテキストブロックにバインドしたいと考えています。

childViewModel でプロパティを定義しました (一種の疑似):

public string PropA
get { return PropertyA; }
set
{
PropertyA = value;
OnPropertyChanged("PropertyA");
}

ビューでUpdateSourceTrigger、Mode = twowayプロパティ-WPFも試しました。

プロパティを変更することはまだできません。

どんな提案も歓迎します....

4

1 に答える 1

1

あなたが示したように、ChildViewModel が ParentViewModel から継承する場合、なぜ 2 番目のプロパティ PropA があるのでしょうか? ChildView を ParentViewModel.PropertyA にバインドしないのはなぜですか?

これは実際の継承ではないと思いますが、ParentViewModel イベントを ChildViewModel に転送したいと考えています。これを行うには、ParentViewModel の PropertyChanged イベントをリッスンする必要があります...これを行うには...

// listen to parentViewModel PropertyChanged events
parentViewModel.PropertyChanged += HandleParentPropertyChangedEvents;

ChildViewModel を閉じるか変更する場合は、必ずイベント ハンドラーを削除してください。

ChildViewModel では、ハンドラーは次のようになります...

private void HandleParentPropertyChangedEvents(object sender, PropertyChangedEventArgs e)
{
    OnPropertyChanged(e.PropertyName);
}

これにより、親からの PropertyChanged イベントが子で再起動されます。ChildViewModel イベント ハンドラーでは、必要に応じて、転送するプロパティをフィルター処理することもできます。

于 2013-04-12T15:58:27.797 に答える