2017-03-21 29 views
3

私は豊富なWinFormsエクスペリエンスを持っていますが、WPFの新機能です。 XAMLによるフォームデザインのビジョンの実装は容易ではありませんでしたが、私はまだM-V-VMプログラミングスタイルから何が期待されているかについてはまだ不明です。私は、物事がどのように振る舞うかを分ける原則を理解していますが、場合によってはそれほど賢明なことは私を逃れ続けています。WPFのベストプラクティス(Windowsフォームから)

たとえば、9つのボタンがあるキーパッドがあり、そのすべてをIsEnableプロパティで有効または無効にする方法が必要な場合、私のフォームデザイナーは、コードビハインドメソッドのターゲティングそれらをデザイン名で表します。このような操作に相当するWPFは何ですか?コードビハインドで一連のboolを管理し、XAMLのそれぞれをそれぞれのボタン属性にバインドすることを期待していましたか?ご指摘ありがとうございます。このシナリオを説明すれば、適切な方向に向けるのに十分なはずです

+3

で言及したダイアログの問題についての素晴らしい記事を持っているトニー・SneedによってSimple MVVM Toolkitで、MVVMフレームワークのいずれかを使用することをお勧めします:それはの一つですMVVMが本当に優れていること:自分で作成したViewModelのIsEnabledプロパティに、クラス "Window1ViewModel"とボタンの親コンテナを作成したいとします。しかし、(imho)には本当に強力な解決策がないMVVMの重要な問題はいくつかあります。その1つはダイアログです。 WYSIWYGエディタで多くのhtmlをやっていないように、デザイナを無効にして純粋なXAMLで作業することをお勧めします。物事を理解したら、デザイナーを再度有効にすることができます。 – cwap

+1

http://reedcopsey.com/series/windows-forms-to-mvvm/ – ASh

答えて

4

を結合します。ボタンIsEnabledのプロパティをViewModelのpublicプロパティにバインドし、そのプロパティ値が変更されたときにViewModelに含まれるロジックに基づいて、キーパッドボタンが有効または無効になります。

@GCamelは、INotifyPropertyChangedのインターフェイスを実装するボタンを表すPOCOクラスを持つこともできます。そのプロパティの1つはIsEnabledプロパティです。このクラスのインスタンスをObservableCollectionに追加し、そのIsEnabledプロパティが変更されると、UIでボタンが有効または無効になります。

また、私は強く私の個人的な好みはまたあなたの1ケースで@cwap Climb Onboard on the MVVM Message Bus

+0

すべてのリンクに感謝します! – schulmaster

1

理想的には、IsEnabledプロパティ、アイコン、およびテキストでbutton_infoの観測可能なコレクションを持っていて、itemsControl、リスト、またはグリッドを作成し、button_infoをdatatempleに関連付けます。何を意味するのかわかりますか?何のGUIは、何のGUIは、ちょうどViewModelにしないと

または特定の問題を簡単に結合して解決しているようなthis sample ???

関連する問題