2012年2月21日火曜日

ListBoxItem の変更

前回のブログでリストアイテムの追加について書きました。
しかしながらあのコードでは各アイテム内のデータを変更することができません (変更しても UI に反映されない、がより正確か)。
これを実現するためには INotifyPropertyChanged を実装するより他ないようです。 前回のコードの Car class を以下で置き換えます。
    public class Car : INotifyPropertyChanged
    {
        public string _Name;
        public string _Manufacturer;
        public event PropertyChangedEventHandler PropertyChanged;

        // コンストラクター
        public Car(string name, string manufcturer)
        {
            _Name = name;
            _Manufacturer = manufcturer;
        }

        public string Name
        {
            get {return _Name;}
            set {
                _Name = value;
                NotifyPropertyChanged("Name");
            }
        }
        private void NotifyPropertyChanged(string p)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(p));
        }
    }
ビルドして、Button を押すと先頭の RX-7 が RX-8 になるのが分かります。すなわち内容の書き換えがこれで可能になりました。

0 件のコメント:

コメントを投稿