如何在Windows运行时中检测属性更改

时间:2014-05-05 19:16:31

标签: c# xaml windows-phone-8 windows-runtime windows-phone

以前在Windows Phone Silverlight个应用中,我们可以实施INotifyPropertyChanged并提升它:

    public int Id
    {
        get { return id; }
        set
        {
            if (value != id)
            {
                id = value;
                NotifyPropertyChanged("Id");
            }
        }
    }

目前,在Windows Runtime App的默认中心模板中,我看到我们使用

public ObservableCollection<Item> Items{ get; set; }

它只会检测是否添加或删除了一个集合项,但是如何更改现有项的属性? 我更改了项目的属性,但它没有生效。怎么了?感谢。

更新:我看到我们仍然可以做到并且有效。但它是在Windows运行时应用程序中推荐的方法吗?

1 个答案:

答案 0 :(得分:0)

Item课程中,您希望在该课程中实施INotifyPropertyChanged。您要修改现有项目的任何内容&#39;属性将通过调用RaisePropertyChanged()事件反映到用户界面。

public class Item : INotifyPropertyChanged
{
  // Omitted implementation of INPC

  private string _name;
  public string Name { get { return name; } set { _name = value; RaisePropertyChanged(); } }

  public void Update()
  {
     Name = "NewValue"; // This will show up in the UI if it is bound to a property (DataBinding)
  }
}