我是 MVVM 和 WPF 的新手,所以这可能是一个广泛或愚蠢的问题,但是:
我正在使用 MVVM 模式,并且有 1 个 Viewmodel、几个视图和几个模型。所有视图都只是放在我的 mainwindow.xaml 上的用户控件。
有问题的视图绑定到具有多个属性的模型,我想使用其中一个属性来动态更改用户控件中的图片。
我很难尝试访问此属性,我的问题是我如何以“正确的”MVVM 方式做到这一点。
我的 mainwindow.xaml:
<Window.Resources>
<DataTemplate DataType="{x:Type Model:Device}">
<Canvas>
<View:DeviceUserControl/>
</Canvas>
</DataTemplate>
</Window.Resources>
//---- SNIP----
<Grid Name="grid1">
<ItemsControl ItemsSource="{Binding Devices}" />
</Grid>
DeviceUserControl.xaml
//--- SNIP ---
Image Name="DeviceImage" Source="{StaticResource IconAdd}"/>
设备型号
//--- SNIP ---
public enum Typeenum
{
FrequenceGenerator,
Oscilloscope,
Test1,
Test2
};
public Typeenum Type { get { return type; } set { type = value; NotifyPropertyChanged("Type"); } }
我想根据对象的类型更改DeviceImage。我已经尝试过依赖属性,但它没有按预期工作(它每次都返回相同的类型)。我真的不需要 notifyPropertyChanged,因为我只对在实例化 Usercontrol 时更改图像源感兴趣。