私はSilverlight/MVVMを学んでいます。今私はコマンドの問題に直面している、私は思っただけ複雑すぎると思う。私は、コマンドの後に子ウィンドウを閉じて実行したかったのです。
コンサートの分離によると、理解しているように、ビューから実行する必要があります。
私が解決策を探している限り、私はそれを見つけました、そして、そのような些細なことは自明ではありませんでした。コマンドなしのMVVM
これをまとめると、ビュー、ビューモデル、モデルの分離は素晴らしいアイデアだと言わざるを得ない。
また、ViewからViewModelへのバインディングはきれいで清潔です。 しかし、コマンドについてはどうでしょうか。私が理解しているように、それらは実行するコードの一部です(代理人のように)。しかし、あまりにも複雑で面倒です。
あなたの意見を知りたい。 VieModelがプロパティと通常のパブリックメソッドを持ち、ビューのイベントから実行されるという考えはどうでしょうか?ビューの関連要素をビューモデルに渡さないとMVVMになります。
もちろん、コマンドのCanUpdate機能を模倣するために、ViewModelのプロパティにIsEnabledを個別にバインドする必要があるという欠点があります。 ViewModelについて知らないビューではありません。 ビューはあまりテスト可能ではありませんか?
非常に柔軟性があります。たとえば、クリックイベントの場合、私はいくつかの厳密なビューロジックを行い、viewmodelオブジェクトからメソッドを呼び出してから、別のメソッドを呼び出して、後でさらにいくつかのビューロジックを行います。
あなたはどう思いますか?
ふふ、私はちょうどだけでも正しい方法を行うにはない考えるためのいくつかのMVVM/XAMLの純粋主義者からのマイナスを取得したのですか? – Iceman