如何检测Windows运行时中的属性更改
本文关键字:属性 运行时 Windows 何检测 检测 | 更新日期: 2023-09-27 18:02:02
以前在Windows Phone Silverlight
应用程序中,我们可以实现INotifyPropertyChanged
并提高它:
public int Id
{
get { return id; }
set
{
if (value != id)
{
id = value;
NotifyPropertyChanged("Id");
}
}
}
目前,在Windows Runtime App
的默认hub模板中,我看到我们使用
public ObservableCollection<Item> Items{ get; set; }
它将只检测一个项目的集合添加或删除,但如何改变一个现有的项目的属性?我更改了一个项目的属性,但它没有生效。怎么了?谢谢。
更新:我看到我们仍然可以这样做并且工作。但这是在Windows运行时应用程序中推荐的方法吗?
在您的Item
类中,您希望在该类中实现INotifyPropertyChanged
。任何你想修改现有项目的属性将通过调用RaisePropertyChanged()
事件反映到UI。
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)
}
}