Henehefu 用 ウィキ

メニュー



- Views

最近の更新

取得中です。

WPFメモ > コレクションの変更通知


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ObservableCollection<T>

List<T>のかわりにObservableCollection<T>を使うとコレクションの変更が通知される。

pubilc class Address : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
 
    protected virtual OnPropertyChanged(string name)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(name));
            Debug.Print("{0} PropertyChanged", name);
        }
    }
 
    public string Name
    {
        get { return _name; }
        set {
            _name = value;
            OnPropertyChanged("Name");
        }
    }
    private string _name;
 
    public string Mail
    {
        get { return _mail; }
        set {
            _mail = value;
            OnPropertyChanged("Mail");
        }
    }
    private string _mail;
}
 
public class AddressBook: ObservableCollection<Address>
{
#if DEBUG
    public AddressBook : base()
    {
        this.Add(new Address(){ Name = "Hene", Mail = "hoge@hoge.com"});
        this.Add(new Address(){ Name = "ふぉお", Mail = "foo@bar.com"});
    }
#endif
 
    public Address AddNew()
    {
        var newitem = new Address(){
            Name = "新規",
            Mail = "",
        };
 
        this.Add(newitem);
 
        return newitem;
    }
}
 

次のように設定する。
public void OnLoaded(object sender, RoutedEventArg e)
{
    var addressBook = new AddressBook();
 
    //... addressBookの初期化をここに書く
 
    listBox.DataContext = addressBook;
}
 
public void ClickAdd(object sender, RoutedEventArg e)
{
    Address newAddress = addressBook.AddNew();
 
    //... まだ俺の初期化コードは終了してないぜ!
}

名前:
コメント:

すべてのコメントを見る

タグ一覧