我是WPF MVVM的新手。
我有一个名为MyButtonsView的用户控件,它继承自UserControl。此用户控件应显示另外两个用户控件。
我的viewmodel类很少: MyRedButtonViewModel,MyBlueButtonViewModel。 它们都来自名为MyAbsButtonViewModel的抽象类。此抽象视图模型强制所有派生视图模型实现属性名称GetImage。
在MyButtonsView的XAML中,我有一个应该有两行的网格。在第一行我想要MyRedButtonViewModel,在第二行我想要MyBlueButtonViewModel。两者都应在按钮内显示图像,该按钮绑定到GetImage属性。 (它是多态的)。
如何告诉XAML为每一行加载正确的视图模型?
是否有适当的方法来实现它。我很想改变我的设计。
答案 0 :(得分:1)
您可以为两个按钮定义使用不同的ViewModel作为DataContext。
MyButtonsView绑定到MyButtonsViewModel,MyButtonsViewModel有两个属性MyBlueButtonViewModel和MyRedButtonViewModel。
在MyButtonsView中,你可以定义这样的东西:
<MyRedButton DataContext = "MyRedButtonViewModel" ..../>
<MyBlueButton DataContext = "MyBlueButtonViewModel" .../>