使表单重新检查ModelView

时间:2011-03-13 11:05:38

标签: c# wpf

我使用ModelView创建了WPF表单。这个ModelViewList项。问题是,当我将项目更改为列表时,表单将继续使用旧项目。

是否有人知道如何通过ModelView通知他必须更新数据的表单?

1 个答案:

答案 0 :(得分: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));
        }
    }
}

INotifyPropertyChanged

中实施Person
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));
        }
    }
}