基于wpf中的组合框项目选择显示图像

时间:2014-05-15 10:53:51

标签: c#-4.0 wpf-4.0

我有一个组合框,其中有一些项目,如:

  1. 的Item1

  2. 项目2

  3. 项目3

  4. 对应每个项目都有像item1的图像有图像img1.jpg,item2有图像img2.jpg而item3有图像img3.jpg。当我们从combox中选择项目时,它将在标签中显示相应的图像。

1 个答案:

答案 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;
    }
}