我只是在学习Datagrids,有一个我找不到明确答案的问题。我将如何操作绑定的字符串以替换last /之前的所有内容,然后添加一个不同的前缀。
这将在Datagrid中显示图像。
例如,绑定到img变量的是
img:“ / img_banner / testBanner.jpg”
最终需要输出的是:
http://www.testsite.com/img_thumnail/testBanner.jpg
到目前为止,我已经找到了有关将文本添加到绑定字符串的信息,但我想删除部分字符串。
这是到目前为止我得到的:
<Image Source="{Binding img, StringFormat=http://www.testsite.com/img_thumnail{0}}" Height="40"/>
有什么办法可以轻松地修剪最后一个/之前的所有内容?
您可以使用IValueConverter
:
public class MyUrlConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value == null)
{
return null;
}
var urlString = value as string;
//now do whatever you want to do with the string
//then return it
return urlString;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后将其添加到您的资源中
<Window.Resources>
<local:MyUrlConverter x:Key="conv"></local:MyUrlConverter>
</Window.Resources>
并将其用作:
<Image Source="{Binding img,Converter={StaticResource ResourceKey=conv}}"></Image>
请注意,如果逻辑依赖于您的视图模型,则最好在img属性的getter或setter方法中完成操作
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句