2

MVVM-Paternに関する多くのチュートリアルを見てきましたがINotiyfyPropertyChanged、ViewModelからビューに情報を送り返したいのにDependency-Propertyまたは-Propertyを取得する必要がある理由がわかりません。

4

3 に答える 3

2

依存関係プロパティは、プロパティが変更されたときの組み込みの変更通知を提供します。つまり、WPF はコントロール値がいつ変更されたかを認識します。

ViewModel タイプは、デフォルトでは変更通知のメカニズムを提供しないため、これらのオプションのいずれもサポートしていない場合、viewModel のプロパティが変更されたときにビューがどのように認識できるのでしょうか?

プロパティ値が変更されたときにビューに通知できるようにするには、viewModel でこれらのオプションのいずれかを使用する必要があります。

これは、コードでプロパティ値が変更されると、ユーザー インターフェイスが更新され、プロパティがユーザー入力によって変更されると、viewModel (および最終的にはモデル) も更新されてこれらの変更が反映されることを意味します。(基本的に、バインディングの両側には、プロパティの変更を相互に伝達する方法が必要です)。

INotifyPropertyChangedビューモデルが WPF に固有のものではなく、他のユーザー インターフェイス テクノロジで使用できることを意味するため、インターフェイスは推奨される方法です。また、依存関係プロパティは、から派生した型でのみ使用できますDependencyObject

于 2012-06-17T12:33:01.153 に答える
1

INotifyPropertyChangedまず、使用する必要はありませんDependencyObject

ただし、これがBindingを使用する際の中心的なポイントであり、BindingにはPub / Subメカニズムがあり、これらのPropertyChangedイベントをリッスンし、Bindingに関連するプロパティが変更された場合にビューの更新を行います。

これに関する詳細は次のとおりです。

バインディングがどのように機能するかについて

Pub SubakaPublishサブスクライブパターン

于 2012-06-17T12:31:33.400 に答える
0

INotiyfyPropertyChanged- このプロパティはビューモデルで使用したため、UI に変更が発生した場合、このプロパティはそれらの変更を反映します。

于 2012-06-20T14:30:58.070 に答える