没有ObservableCollection的Wpf更新UI

时间:2012-12-22 19:29:42

标签: wpf bytearray observablecollection

我有一个具有字节数组属性的客户类。 应用程序使用字节数组作为图像的源。 当我更改此数组时,UI不会更新(因为byte []不是ObservableCollection)。

我该怎样做才能强制UI刷新?

编辑:图像保存为字节数组,因为它在DB中的位置(varbinary(MAX))。我尝试将类型更改为IList但是在nhibernate中弹出错误:无法确定System..IList的类型

1 个答案:

答案 0 :(得分:2)

让您的班级实施INotifyPropertyChanged

一旦Byte数组发生更改,请引发PropertyChanged事件。

例如:

class Customer : INotifyPropertyChanged
{
    private byte[] byteArray;

    public byte[] ByteArray
    {
        get
        {
            return byteArray;
        }
        set
        {
            if (value != byteArray)
            {
                byteArray = value;
                RaisePropertyChanged("ByteArray");
            }
        }
    }

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


    public event PropertyChangedEventHandler PropertyChanged;
}