UWP基于可绑定属性的值动态显示图像

时间:2017-11-08 01:02:49

标签: binding uwp converter uwp-xaml

我正在努力学习绑定和转换器是如何工作的,而我正在努力

如何根据名为Status?

的可绑定属性将图像绑定到ViewCell

例如:

  • 如果我的状态=" X",则显示Image1
  • 如果我的状态=" Y",则显示Image2
  • 如果我的状态=" Z",则显示Image3

我有一个Image,其Source设置为Status属性,如下所示,但这不起作用,不显示图像。我的猜测是我需要编写一个转换器,以某种方式将状态值转换为图像

<Image x:Name="StatusIcon" Source="{Binding Status}"/>

我的图片位于UWP项目根目录中,如果我这样做:

<Image x:Name="StatusIcon" Source="ms-appx:///Image1.png" />

,那么我的图像将正确显示,但我需要它根据Status属性动态更改。

1 个答案:

答案 0 :(得分:1)

你是对的。您需要使用转换器将字符串转换为相应的图像。

以下是示例代码

public class ImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        switch (value as string)
        {
            case "X":
                return new BitmapImage(new Uri("ms-appx:///Image1.png"));
            case "Y":
                return new BitmapImage(new Uri("ms-appx:///Image2.png"));
            case "Z":
                return new BitmapImage(new Uri("ms-appx:///Image3.png"));
            default:
                return new BitmapImage(new Uri("ms-appx:///Default.png"));
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}