我今天给你来一个“小”问题。 我不知道如何创建一个简单的转换器,因为它的第一次,我没有找到一个简单的例子。 我想创建一个转换器“串来串”为一个gridview绑定。 这是一个ImageSource的。 我从一个对象的字符串(这是图像的名字),我想补充的“完整路径”,如:
return "ms-appdata:///local/" + value;
其实,这是我做的事:
class thumbToFullPathConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var fullPath = value;
return ("ms-appdata:///local/" + value);
Debug.WriteLine(value.ToString());
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
对不起,我认为它是一个快速的胜利,但我不知道如何做到这一点。 感谢您的时间,问候。
您希望您的类从继承IValueConverter
接口。
public class ThumbToFullPathConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value == null)
return value;
return String.Format("ms-appdata:///local/{0}", value.ToString());
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
然后,您需要在您的XAML这个转换器(无论是作为一个资源本地的页面或整个应用程序可用的应用程序资源)。 导入在网页上您要访问的转换器的命名空间。 (更改MyConverters
到您的命名空间)
xmlns:local="clr-namespace:MyConverters"
然后将它作为一种资源
<MyPage.Resources>
<local:ThumbToFullPathConverter x:Key="ThumbToFullPathConverter" />
</MyPage.Resources>
然后,你喜欢,你可以用它
<TextBlock Text="{Binding MyText, Converter={StaticResource ThumbToFullPathConverter}" />
添加类与此代码。 这将是你的转换器
public class ThumbToFullPathConverter : IValueConverter
{
public object Convert(object value, Type targettype, object parameter, string Path)
{
return ("ms-appdata:///local/" + value).ToString();
}
public object ConvertBack(object value, Type targettype, object parameter, string Path)
{
throw new NotImplementedException();
}
}
现在,你怎么可以用它来在GridView的数据绑定模板图像下面的代码将解释。
添加页面资源在你XAML页面。
<Page.Resources>
<local:ThumbToFullPathConverter
x:Key="ThumbToFullPathConverter" />
</Page.Resources>
<DataTemplate x:Key="MyTemplate">
<Image
Source="{Binding path, Converter={StaticResource ThumbToFullPathConverter}}"
Stretch="None" />
</DataTemplate>