2

我今天来找你是为了一个“小”问题。我不知道如何创建一个简单的转换器,因为它是第一次,我没有找到一个简单的例子。我想为 gridview 绑定创建一个转换器“字符串到字符串”。这是一个图像源。我从一个对象中获取一个字符串(这是图像的名称),我想添加“完整路径”,例如:

 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();
    }
}

抱歉,我认为这是一个快速的胜利,但我不知道该怎么做。谢谢你的时间,问候。

4

2 回答 2

6

您希望您的类从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}" />
于 2013-04-09T12:57:27.563 回答
2

使用此代码添加一个类。它将是你的转换器

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>
于 2013-04-09T13:03:54.607 回答