Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WinRT C#-创建用于绑定Gridview的字符串到字符串的转换器_C#_Binding_Windows Runtime_Converter - Fatal编程技术网

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

WinRT C#-创建用于绑定Gridview的字符串到字符串的转换器,c#,binding,windows-runtime,converter,C#,Binding,Windows Runtime,Converter,我今天来找你是为了一个“小”问题。我不知道如何创建一个简单的转换器,因为这是第一次,我没有找到一个简单的例子。 我想为gridview绑定创建一个“字符串到字符串”的转换器。这是一个图像源。我从一个对象中提取一个字符串(这是图像的名称),并希望添加“完整路径”,如: 这就是我所做的: class thumbToFullPathConverter { public object Convert(object value, Type targetType, object parameter

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

这就是我所做的:

 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更改为您的命名空间)

然后将其设置为资源

<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>

我不知道该感谢谁,但这两种方法都很有效,现在我对它的工作原理有了很好的了解!
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();
    }
}
<Page.Resources>
    <local:ThumbToFullPathConverter 
               x:Key="ThumbToFullPathConverter" />
</Page.Resources>

<DataTemplate x:Key="MyTemplate">
     <Image 
            Source="{Binding path, Converter={StaticResource ThumbToFullPathConverter}}"
            Stretch="None" />
</DataTemplate>