0

MVVM パターンを使用して WPF を学習していますが、全体的にはうまくいっていますが、一部のボタンの有効/無効状態に問題が 1 つあります。

IsEnabled状態がこれに従うべき3つのボタンがあります:

App Startup:  enabled | disabled | disabled 
Click first:  disabled | enabled | disabled 
Click second: enabled | disabled | enabled 
Click third:  enabled | disabled | enabled

すべてのボタンには個別のコマンドが関連付けられているため、いつクリックされたかがわかります。IsEnabledただし、インタラクションをウィンドウにリレーして他のボタン コントロールの状態を設定する方法がわかりません。

イベントとコードビハインドでそれを行う方法は知っていますが、これをできるだけ純粋な MVVM に近づけようとしています。また、ボタンのプロパティにバインドできる ViewModel のプロパティをいくつか持つことができることも知っていIsEnabledますが、それは少し洗練されていないように思えます (ただし、間違っている可能性があります!)。

誰かがこれを達成する方法についていくつか提案してもらえますか?

ありがとう

4

1 に答える 1

1

IsEnabledここでデータ バインディングを使用するため、ビュー モデルのブール プロパティは、コマンドが呼び出されたときに変化し、XAML で宣言的にボタンがプロパティをバインドします。

これにより、ビューに関係なく、ロジックを非常に簡単にテストできます。ビュー モデルをインスタンス化し、ビュー モデルで適切なメソッドを呼び出してから、適切なブール値のプロパティを調べることができます。

コマンドには制限があるため、 MVVM フレームワークを検討することもできます。

于 2013-11-11T16:27:39.963 に答える