Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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
C# 图像绑定到字符串_C#_Wpf_Image_Windows Phone 8_Windows Phone - Fatal编程技术网

C# 图像绑定到字符串

C# 图像绑定到字符串,c#,wpf,image,windows-phone-8,windows-phone,C#,Wpf,Image,Windows Phone 8,Windows Phone,我无法显示此位置的图像资源/Images/abc.png 以下是我正在做的: public class A { private string image; public string Image { get { return image; } set { if (value != this.image) {

我无法显示此位置的图像资源/Images/abc.png

以下是我正在做的:

public class A
    {
private string image;
public string Image
        {
            get { return image; }
            set
            {
                if (value != this.image)
                {
                    image = value;
                }
            }
        }

}
在my.CS文件中:

if (somecondition)
                    {
                        a.Image = @"Resources/Images/abc.png";
                    }
在我的XAML文件中:

 <DataTemplate x:Key="TopicDataTemplate" >
<Image Stretch="None" 
                               Grid.Row="1"
                               Source="{Binding Image}"/>
</DataTemplate>


但它不显示图像,如何修复?这里我做错了什么?

如果Visual Studio项目中名为
Images
的文件夹中确实有一个名为
abc.png
的文件,并且它的构建操作设置为
Resource
(默认设置),那么您的图像路径应该是正常的

更新我不确定上述情况是否也适用于Windows Phone。我猜从字符串到ImageSource的默认转换在该平台上可能不如在WPF中那样有效


但是,在这两种平台上,如果要在运行时更改
Image
属性,则需要实现一种属性更改机制,通知数据绑定
Image
属性已更改。一种方法是在类A中实现接口:

public class A : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private string image;
    public string Image
    {
        get { return image; }
        set
        {
            image = value;
            RaisePropertyChanged("Image");
        }
    }

    protected void RaisePropertyChanged(string propertyName)
    {
        var propertyChanged = PropertyChanged;
        if (propertyChanged != null)
        {
            propertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

显然,还必须正确设置
图像
绑定,也就是说,模板化项的
DataContext
包含对a类实例的引用。

您所说的Resources是指文件夹还是应用程序资源默认情况下,我添加ImageYour
Image
属性的地方名为Resources的文件夹缺少属性更改通知机制。考虑在类A中实现接口。@克莱门斯,他不是第一个这样做的。binding@alnaji这是一个数据模板,因此我无法在CS文件中获取图像名称的引用。仍然没有更改,它没有从location Resources/Images/abc.pngDid显示图像您正确设置了绑定源对象,例如,模板化控件或项的DataContext?并且您可能必须将添加到映像路径中。也请看。@Clemens My bad-在我测试字符串时,它也应该可以使用字符串(我必须更新我的信息)。抱歉搞混了。我想OP在添加这个标签时会询问WP。