我无法显示此位置的图像Resources / Images / abc.png。
这就是我在做的事情:
public class A
{
private string image;
public string Image
{
get { return image; }
set
{
if (value != this.image)
{
image = value;
}
}
}
}
在我的.CS文件中:
if (somecondition)
{
a.Image = @"Resources/Images/abc.png";
}
在我的XAML文件中:
<DataTemplate x:Key="TopicDataTemplate" >
<Image Stretch="None"
Grid.Row="1"
Source="{Binding Image}"/>
</DataTemplate>
但它没有显示图像,如何解决这个问题?我在这做错了什么?
答案 0 :(得分:2)
您的图像路径应该没问题,只要在Visual Studio项目中另一个名为abc.png
的文件夹中名为Images
的文件夹中存在名为Resources
的文件,并且构建操作设置为Resource
(这是默认值)。
更新我不确定以上是否也适用于Windows Phone。我想从字符串到ImageSource的默认转换可能不像在WPF中那样在该平台上有效。
但是,在任一平台上,如果要在运行时更改Image
属性,则需要实现属性更改机制,以通知数据绑定Image
属性已更改。一种方法是在类A中实现INotifyPropertyChanged接口:
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));
}
}
}
显然,Image
绑定也必须正确设置,即模板化项的DataContext
包含对A类实例的引用。