2012-12-22 42 views
1

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

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

编辑:图像被保存为一个字节数组,因为它如何坐在数据库(varbinary(MAX))。我试图改变类型的IList但突然出现的NHibernate错误:无法确定类型System..IList

+0

你或许应该看看INotifyPropertyChanged的 – Khan

回答

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; 
} 
+0

它确实是有点额外的代码,但它的合理性和更好的再重装整个窗口。谢谢 – user779444