我有一个使用的WPF表单ModelView.这ModelView有一个List项目.问题是,当我将项目更改为列表时,表单继续具有旧项目.
有谁知道我怎么能注意到他必须用ModelView?更新它的数据的形式?
在ViewModel中使用ObservableCollection和实现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));
}
}
}
Run Code Online (Sandbox Code Playgroud)
实施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));
}
}
}
Run Code Online (Sandbox Code Playgroud)