我正在创建一个显示具有多种类型消息(警报、警告 1、警告 2)的 rss 的应用程序。所有类型都有一个 png(与消息相同)。它们都放在我项目的Images文件夹中。
所以在我的应用程序中,我绑定到一个新闻对象列表。新闻对象具有字符串Type
(alert、warning1、warning2)。
但是如何根据这个 Type 属性将图像的源绑定到正确的图像?
我正在创建一个显示具有多种类型消息(警报、警告 1、警告 2)的 rss 的应用程序。所有类型都有一个 png(与消息相同)。它们都放在我项目的Images文件夹中。
所以在我的应用程序中,我绑定到一个新闻对象列表。新闻对象具有字符串Type
(alert、warning1、warning2)。
但是如何根据这个 Type 属性将图像的源绑定到正确的图像?
在这个 newsObject 类的构造函数中添加switch(Type)
块,并根据Type
值应用不同的图像(我假设在这个类中你有 image 或 path_to_image 属性)
你必须使用 IValueConverter:
例如:
public class ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var imagePath = (string) value;
switch (imagePath)
{
case "warning":
return "/Images/warning.png";
case "error":
return "/Images/error.png";
default:
throw new InvalidOperationException();
}
}
}
然后在 xaml 中:
<UserControl.Resources>
<converters:ImageConverter x:Key="imageConverter"/>
……
最后:
<Image Source="{Binding DataItem.Type,Converter={StaticResource imageConverter}}" />