我有一个组合框,其中有一些项目,如:
的Item1
项目2
项目3
对应每个项目都有像item1的图像有图像img1.jpg,item2有图像img2.jpg而item3有图像img3.jpg。当我们从combox中选择项目时,它将在标签中显示相应的图像。
答案 0 :(得分:0)
我得到了回答我的问题,在这里:
<xmlns:local="clr-namespace:ImageMVVM_Learning"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:EnumToImageConverter x:Key="conv"/>
</Window.Resources>
<Grid>
<StackPanel>
<ComboBox x:Name="combo" ItemsSource="{Binding MyProperty}"/>
<Image Source="{Binding ElementName=combo,Path=SelectedValue,Converter={StaticResource conv}}"/>
</StackPanel>
</Grid>
</Window>
在viewmodel类中执行此操作:
public enum MyEnum
{
A,
B,
C
}
public class EnumToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
{
switch ((MyEnum)value)
{
case MyEnum.A:
return new BitmapImage(new Uri(@"Images\A.png", UriKind.Relative));
case MyEnum.B:
return new BitmapImage(new Uri(@"Images\B.png", UriKind.Relative));
}
}
return new BitmapImage(new Uri(@"Images\A.png", UriKind.Relative));
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}