图像源值 - 硬编码字符串和绑定的组合

时间:2014-07-08 09:43:40

标签: wpf image xaml data-binding

我的xaml中有一张图片:

<Image Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Width="30" Height="30"></Image>

图像的来源是这样的:

..\Images\MyFolder\1.png
..\Images\MyFolder\2.png
..\Images\MyFolder\3.png

基本上,.png文件的名称是项目的ID。

在我的ViewModel中,我有一个代表id的字段,它的名字是myId。

如何使用两个硬编码值和一个绑定值添加此类源?

1 个答案:

答案 0 :(得分:2)

使用id绑定Image源并应用转换器来创建图像路径。

xaml将是:

ente<Image Source="{Binding Path=myId, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Converter={StaticResource ConvImageSource}}"/>

并在顶部添加资源:

<Window.Resources>
    <local:ImageSourceConverter x:Key="ConvImageSource"/>
</Window.Resources>

转换器可以是:

public class ImageSourceConverter : IValueConverter
{        
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        String myId = System.Convert.ToString(value);
        String imagePath = SPECIFY_IMAGE_PATH;
        String imageExtn = SPECIFY_IMAGE_Extn;

        // Create the image source
        String imageSource = String.Concat(imagePath, myId, imageExtn);

        return imageSource;
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value;
    }

    #endregion
}

希望这会有所帮助。