2012-04-28 15 views
0

私は、WPF MVVMについてかなり新しいです。抽象的なユーザーコントロール

UserControlから継承するMyButtonsViewという名前のユーザーコントロールがあります。このユーザーコントロールには、他の2つのユーザーコントロールが表示されます。

私はいくつかのビューモデルクラスを持っています: MyRedButtonViewModel、MyBlueButtonViewModel。 これらは両方とも、MyAbsButtonViewModelという名前の抽象クラスから派生しています。この抽象ビューモデルは、すべての派生ビューモデルがプロパティ名GetImageを実装するように強制します。

MyButtonsViewのXAMLには、2つの行が必要なグリッドがあります。最初の行ではMyRedButtonViewModelを、2行目にMyBlueButtonViewModelを、それぞれ作成します。どちらも、GetImageプロパティにバインドされたボタンの内側にイメージを表示する必要があります。 (多型です)。

各行に適切なビューモデルを読み込むようにXAMLに指示するにはどうすればよいですか?

これを実装するには適切な方法があります。私は自分のデザインを変えることを心掛けています。

+0

:あなたの命名について再考あなたはこのような代を定義することができますMyButtonsViewで

。 MyAbsButtonViewModelは、Absが通常数学的絶対値に使用されるため、かなり混乱します。これらの追加文字があなたを傷つけることはありませんが、コードの品質を向上させるという点で、MyAbstractButtonViewModelの方が優れた名前です。もう一つの提案はButtonViewModelBaseで、他のクラスが派生できる基本クラスであることを示します。 – PVitt

答えて

1

2つのボタンのDataContextとして異なるViewModelを使用することを定義できます。

MyButtonsViewModelにバインドするMyButtonsView MyButtonsViewModelには、MyBlueButtonViewModelとMyRedButtonViewModelの2つのプロパティがあります。あなたの質問のほかに

<MyRedButton DataContext = "MyRedButtonViewModel" ..../> 
<MyBlueButton DataContext = "MyBlueButtonViewModel" .../> 
+0

それは私を助けてくれてありがとう –

関連する問題