Laurent Bugnion のMVVM Light Toolkitの実験を始めたところです。とても気に入ると思いますが、いくつか質問があります。
彼らの話をする前に、私がどこから来たのか説明させてください。私は現在、Josh Smith のMVVM Foundationと、 MVVM Toolkitという Codeplex 上の別のプロジェクトを組み合わせて使用しています。私はMVVM Foundation とMVVM Toolkitを使用ObservableObject
しています。Messenger
DelegateCommand
CommandReference
ICommand
MVVM Foundation と MVVM Tookit の唯一の実際の重複は、MVVM Foundationと MVVM Tookit の両方の実装があることRelayCommand
ですDelegateCommand
。これら 2 つのうち、DelegateCommand
より洗練されているように見えます。CommandManagerHelper
弱参照を使用してメモリ リークを回避する を採用しています。
そうは言っても、ここに私の質問があります:
RelayCommand
MVVM Light がではなく を使用するのはなぜDelegateCommand
ですか? 弱い参照の使用は、ICommand
何らかの理由で不要または推奨されていませんか?ObservableObject
MVVM Lightにないのはなぜですか? .ObservableObject
_ _ _ たとえば、オブジェクトのリストにバインドする DataGrid があるとします。ユーザーが DataGrid を表示しているときに のプロパティのいずれかが変更される可能性がある場合は、を実装する必要があります。( LinqToSql のようなものを使用して自動生成された場合、おそらく既に実装されていることを認識していますが、エンティティ モデル オブジェクトのビュー固有のバージョンを作成する必要がある場合があります。たとえば、サポートするコマンドを含める必要があるためです。 DataGrid 内のボタン列)。ViewModelBase
INotifyPropertyChanged
INotifyPropertyChanged
Person
Person
Person
INotifyPropertyChanged
Person
INotifyPropertyChanged
ありがとう。
PS DelegateCommand
MVVM Toolkit のコードは次のとおりです。
https://docs.google.com/document/pub?id=1ApCx5SbCfHi5fBhv8Ki3zA6j34sp2t80LQZdj89v8cU