Wpf更新用户界面,无可见收集

Wpf更新用户界面,无可见收集,wpf,bytearray,observablecollection,Wpf,Bytearray,Observablecollection,我有一个customer类,它有一个字节数组属性。 应用程序使用字节数组作为图像的源。 当我更改此数组时,UI不会更新(因为字节[]不是可观察集合) 我什么时候可以强制UI刷新 编辑:图像保存为字节数组,因为它在DB中的位置(varbinary(MAX))。我尝试将类型更改为IList,但nhibernate中出现了错误:无法确定系统的类型..IList让您的类实现 一旦字节数组发生更改,立即引发PropertyChanged事件 例如: class Customer : INotifyProp

我有一个customer类,它有一个字节数组属性。 应用程序使用字节数组作为图像的源。 当我更改此数组时,UI不会更新(因为字节[]不是可观察集合)

我什么时候可以强制UI刷新


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

让您的类实现

一旦字节数组发生更改,立即引发
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;
}

您可能应该查看INotifyPropertyChangedIt,这样做需要一些额外的代码,但这比重新加载整个窗口更合理、更好。谢谢