2011-03-13 3 views
2

私はModelViewを使用してWPFフォームを持っています。このModelViewにはListのアイテムがあります。問題は、アイテムをリストに変更すると、フォームに古いアイテムが残っていることです。フォームを再確認してModelView

誰でも知っていますかのデータはModelViewで更新する必要があります。

+0

*現在のリスト*を変更したり、リストの項目を変更したりするときに更新を得られないという問題がありますか? – Jon

+0

私はリストのデータでいっぱいの配列プロパティを持っています。そのリストにアイテムを追加すると、フォームに何も起こりません。 –

+2

Meleakの答えの前半はあなたが必要とするものです。 – Jon

答えて

5

使用ObservableCollection、あなたは人のリストを持っている場合はViewModelに

INotifyPropertyChangedを実装し、ObservableCollection<Person>

public class MyViewModel : INotifyPropertyChanged 
{ 
    private ObservableCollection<Person> m_persons; 
    public ObservableCollection<Person> Persons 
    { 
     get 
     { 
      return m_persons; 
     } 
     set 
     { 
      m_persons = value; 
      OnPropertyChanged("Persons"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    private void OnPropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

Person

INotifyPropertyChangedを実装するリストを作ります
public class Person : INotifyPropertyChanged 
{ 
    private string m_name; 
    public string Name 
    { 
     get 
     { 
      return m_name; 
     } 
     set 
     { 
      m_name = value; 
      OnPropertyChanged("Name"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    private void OnPropertyChanged(string propertyName) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 
関連する問題