【发布时间】:2014-08-30 09:29:14
【问题描述】:
我有一个实现 IValueConverter 接口的转换器。这是转换方法:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return String.Concat(@"..\Images\myFolder\", System.Convert.ToString(value), ".png");
}
在我的 xaml 代码中,在资源中:
<converters:ImageSourceConverter x:Key="ImageSourceConverter"/>
我是这样使用它的:
<Image Source="{Binding Path=myCategoryId, Converter={StaticResource ImageSourceConverter}}" Width="150" Height="150"></Image>
我遇到的问题是:我的解决方案中有几个带有图像的文件夹。图片的路径是这个:
..\Images\myFolder\1.png
..\Images\myFolderJohn\2.png
..\Images\myFolderJack\3.png
其中文件名是一个 id。 我在 Convert 方法中的代码仅适用于 myFolder 中的图像。文件夹的名称取决于放置图像的用户控件。所以,应该是这样的:
if (userControl == "John")
return String.Concat(@"..\Images\myFolderJohn\", System.Convert.ToString(value), ".png");
if (userControl == "Jack")
return String.Concat(@"..\Images\myFolderJack\", System.Convert.ToString(value), ".png");
我如何知道在 Convert 方法中显示图像的用户控件?
【问题讨论】:
-
这是带有多值转换器的
MultiBinding的典型用例。参见例如this answer 了解一些细节。
标签: wpf mvvm converter ivalueconverter