0

私はWPF MVVMにかなり慣れていません。

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

ビューモデル クラスはほとんどありません: MyRedButtonViewModel、MyBlueButtonViewModel。どちらも MyAbsButtonViewModel という名前の抽象クラスから派生します。この抽象ビュー モデルは、すべての派生ビュー モデルにプロパティ名 GetImage の実​​装を強制します。

MyButtonsView の XAML には、2 つの行を持つグリッドがあります。最初の行には MyRedButtonViewModel が必要で、2 番目の行には MyBlueButtonViewModel が必要です。どちらも、GetImage プロパティにバインドされたボタン内に画像を表示する必要があります。(多態的です)。

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

それを実装する適切な方法はありますか。私は私のデザインを変更する心を開いています。

4

1 に答える 1

1

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

MyButtonsViewModel への MyButtonsView バインディング、MyButtonsViewModel には、MyBlueButtonViewModel と MyRedButtonViewModel の 2 つのプロパティがあります。

MyButtonsView では、次のようなものを定義できます。

<MyRedButton DataContext = "MyRedButtonViewModel" ..../>
<MyBlueButton DataContext = "MyBlueButtonViewModel" .../>
于 2012-04-28T07:32:14.167 に答える