私は MVVM と WPF を初めて使用するので、これは幅広い質問またはばかげた質問かもしれませんが、
私はMVVMパターンを使用しており、1つのビューモデル、いくつかのビュー、およびいくつかのモデルがあります。すべてのビューは、mainwindow.xaml に配置された単なるユーザー コントロールです。
問題のビューは、いくつかのプロパティを持つモデルにバインドされています。そのうちの 1 つを使用して、ユーザー コントロールの画像を動的に変更します。
私はこのプロパティにアクセスしようとして非常に苦労しています.私の質問は、これを「正しい」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は本当に必要ありません。