通知自定义类属性

时间:2015-08-07 09:10:55

标签: c# wpf image xaml binding

我遇到一个简单的图像源绑定问题 我有一个类存储图像文件(和其他东西)的路径,如下所示:

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; eEkta用户名TYPE)UI不会改变 我错过了什么吗?这是将图像源绑定到自定义项目的正确方法吗?

1 个答案:

答案 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; }
    }
}