1

バイト配列プロパティを持つ顧客クラスがあります。アプリケーションは、イメージのソースとしてバイト配列を使用します。この配列を変更しても、UI は更新されません (byte[] は ObservableCollection ではないため)。

UI を強制的に更新するには、いつすればよいですか?

EDIT : 画像は、DB(varbinary(MAX)) に格納されるため、バイト配列として保存されます。タイプをIListに変更しようとしましたが、nhibernateでエラーが発生しました:System..IListのタイプを特定できませんでした

4

1 に答える 1

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;
}
于 2012-12-22T19:33:29.600 に答える