我遇到一个简单的图像源绑定问题 我有一个类存储图像文件(和其他东西)的路径,如下所示:
public class Ekta {
...
public string PATHMED { get; set; }
public string FICMED { get; set; }
public string FULLPATH { get { return PATHMED + FICMED; } }
...
}
我的窗口中有以下属性:
public Ekta mainImg { get; set; }
在xaml中,绑定是这样完成的:
<Image Source="{Binding Path=mainImg.FULLPATH}"/>
当我第一次设置mainImg
的值时(调用InitializeComponent()
之前),但是当我更新它时mainImg = e;
e
是Ekta
用户名TYPE
)UI不会改变
我错过了什么吗?这是将图像源绑定到自定义项目的正确方法吗?
答案 0 :(得分:1)
我建议创建一个名为Notifier
的基类,并将其用于任何需要INotifyPropertyChanged
实现的类
public class Notifier : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged([CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
然后
public class Ekta : Notifier
{
private string _PATHMED;
public string PATHMED
{
get { return _PATHMED; }
set
{
_PATHMED = value;
RaisePropertyChanged();
RaisePropertyChanged("FULLPATH");
}
}
private string _FICMED;
public string FICMED
{
get { return _FICMED; }
set
{
_FICMED = value;
RaisePropertyChanged();
RaisePropertyChanged("FULLPATH");
}
}
public string FULLPATH
{
get { return PATHMED + FICMED; }
}
}