1

我的视图模型中有一个ObservableCollection<Person>。这被绑定为ItemsSource视图中的 DataGrid。Person 类只有三个属性:

 public class Person : ViewModelBase
    {
        private Guid id;
        public Guid Id
        {
            get { return this.id; }
            set
            {
                this.id = value;
                OnPropertyChanged("Id");
            }
        }

        private string firstname;
        public string Firstname
        {
            get { return this.firstname; }
            set
            {
                this.firstname = value;
                OnPropertyChanged("Firstname");
            }
        }

        private string lastname;
        public string Lastname
        {
            get { return this.lastname; }
            set
            {
                this.lastname = value;
                OnPropertyChanged("Lastname");
            }
        }
    }

ViewModelBase 类实现 INotifyPropertyChanged。

如果我在日期网格中添加或删除条目,则集合中的项目将完美更新。然后该项目也会从集合中删除。

我的问题是人员项目的内容已更新,但我不知道如何对此做出反应。

我是否必须向人员类添加事件或其他内容才能获得通知,或者是否有其他方法可以做到这一点?

4

1 回答 1

4

在您的类上实现INotifyPropertyChanged接口,Person以便 Person 属性的任何更改都会反映在 UI 上。

样本 -

public class Person : INotifyPropertyChanged
{
   private Guid id;
   public Guid Id
   {
      get { return id; }
      private set
      {
         if(id != value)
         {
            id = value;
            NotifyPropertyChanged("Id");
         }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string propertyName)
    {
       if (PropertyChanged != null)
       {
          PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
       }
    }
}
于 2013-11-05T18:56:08.447 回答