您将不得不使用IValueConverter
这是一个简单的示例,传入 aString.Format
作为转换器参数
public class StringFormatToImageSourceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter is string)
{
return string.Format(parameter.ToString(), value);
}
return null;
}
public object ConvertBack(object value, Type targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
用法:
<XXXX.Resources>
<local:StringFormatToImageSourceConverter x:Key="StringToImage" />
</XXXX.Resources>
<Image Source="{Binding Path=Id, Converter={StaticResource StringToImage}
, ConverterParameter=../Images/{0}.jpg}" />
有一种方法可以Xaml
通过使用不可见TextBlock
来格式化字符串来保留它,但不是最佳实践。
<Grid>
<TextBlock x:Name="StringToImage" Visibility="Hidden" Text="{Binding Id, StringFormat=../Images/{0}.jpg}" />
<Image Source="{Binding Text, ElementName=StringToImage}"/>
</Grid>