0

我对 WPF MVVM 相当陌生。

我有一个名为 MyButtonsView 的用户控件,它继承自 UserControl。此用户控件应显示另外两个用户控件。

我有几个视图模型类:MyRedButtonViewModel、MyBlueButtonViewModel。它们都派生自一个名为 MyAbsButtonViewModel 的抽象类。此抽象视图模型强制所有派生视图模型实现属性名称 GetImage。

在 MyButtonsView 的 XAML 中,我有一个应该有两行的网格。在第一行我想要 MyRedButtonViewModel,在第二行我想要 MyBlueButtonViewModel。两者都应在绑定到 GetImage 属性的按钮内显示图像。(它是多态的)。

如何告诉 XAML 为每一行加载正确的视图模型?

有没有合适的方法来实现它。我愿意改变我的设计。

4

1 回答 1

1

您可以为两个按钮定义使用不同的 ViewModel 作为 DataContext。

MyButtonsView 绑定到 MyButtonsViewModel,MyButtonsViewModel 有两个属性 MyBlueButtonViewModel 和 MyRedButtonViewModel。

在 MyButtonsView 中,您可以定义如下内容:

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