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