我正在创建一个应用程序,显示一个rss,它具有几种类型的消息(alert,warning1,warning2)。所有类型都有一个png(与消息相同)。它们全部放置在我的项目的Images文件夹中。如何根据名称(字符串)绑定图像源?
因此,在我的应用程序中,我绑定到一个newsobjects列表。新对象具有字符串Type
(alert,warning1,warning2)。
但是,如何将图像的来源绑定到基于此Type属性的正确图像?
我正在创建一个应用程序,显示一个rss,它具有几种类型的消息(alert,warning1,warning2)。所有类型都有一个png(与消息相同)。它们全部放置在我的项目的Images文件夹中。如何根据名称(字符串)绑定图像源?
因此,在我的应用程序中,我绑定到一个newsobjects列表。新对象具有字符串Type
(alert,warning1,warning2)。
但是,如何将图像的来源绑定到基于此Type属性的正确图像?
你必须使用的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"/>
....
和finaly:
<Image Source="{Binding DataItem.Type,Converter={StaticResource imageConverter}}" />
在这种newsObject类的构造函数中添加switch(Type)
块,并有申请根据Type
值的不同图像(我认为在这个类,你有图像或映像路径属性附加伤害)
感谢您的职位。但是你在哪里定义“转换器”,以及你如何做到这一点?我创建了一个新类并粘贴了你的代码。针对该命名空间没有帮助我......: -/ – Jason94
这只是xaml中的一个命名空间。例如:xmlns:转换器=“clr-namespace:WpfApplication1.Converters”。你可以发布你的代码,以便我们可以查看它。 –
明白了,谢谢! – Jason94