Сделайте, чтобы форма перепроверила ModelView - PullRequest
2 голосов
/ 13 марта 2011

У меня есть форма WPF, использующая ModelView. Это ModelView имеет List предметов. Проблема в том, что когда я меняю элемент в списке, форма продолжает иметь старый элемент.

Кто-нибудь знает как я могу обратить внимание на форму, которую он должен обновить это данные с ModelView?

1 Ответ

5 голосов
/ 13 марта 2011

Используйте ObservableCollection и внедрите INotifyPropertyChanged в ViewModel

Пример

Если у вас есть список лиц, сделайте этот список 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));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...