WinRT C# - 创建转换器字符串到字符串以绑定Gridview

Sw1*_*w1a 2 c# binding converter windows-runtime

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

 return "ms-appdata:///local/" + value;
Run Code Online (Sandbox Code Playgroud)

这实际上就是我做的:

 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

key*_*rdP 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您需要在XAML中包含此转换器(作为页面的本地资源,或整个应用程序中可用的应用程序资源).导入要访问转换器的页面上的命名空间.(更改MyConverters为您的命名空间)

xmlns:local="clr-namespace:MyConverters"
Run Code Online (Sandbox Code Playgroud)

然后将其设置为资源

<MyPage.Resources>
   <local:ThumbToFullPathConverter x:Key="ThumbToFullPathConverter" />
</MyPage.Resources>
Run Code Online (Sandbox Code Playgroud)

然后你可以在任何你喜欢的地方使用它

<TextBlock Text="{Binding MyText, Converter={StaticResource ThumbToFullPathConverter}" />
Run Code Online (Sandbox Code Playgroud)