以前在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运行时应用程序中推荐的方法吗?
答案 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)
}
}