C#WPF操作绑定字符串以替换最后一个/之前的所有内容,然后添加不同的前缀
我正在学习Datagrids,有一个问题我找不到明确的答案。 如何操作绑定字符串来替换上一个/之前的所有内容,然后添加不同的前缀 这将在Datagrid中显示图像 例如,绑定到img变量的是 img:“/img_banner/testBanner.jpg” 最后需要输出的是:C#WPF操作绑定字符串以替换最后一个/之前的所有内容,然后添加不同的前缀,c#,wpf,string,datagrid,C#,Wpf,String,Datagrid,我正在学习Datagrids,有一个问题我找不到明确的答案。 如何操作绑定字符串来替换上一个/之前的所有内容,然后添加不同的前缀 这将在Datagrid中显示图像 例如,绑定到img变量的是 img:“/img_banner/testBanner.jpg” 最后需要输出的是: http://www.testsite.com/img_thumnail/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中执行操作