Silverlight / WP7:
我有一个我从JSON查询反序列化的对象列表。此列表将绑定到XAML中的ListBox。但是,我想编辑在绑定到UI之前返回的其中一个字符串。我做了一些搜索,但我遇到了this solution,但我对提出的解决方案并不十分清楚:
string _value;
public string Value { get { return _value; } set { _value = value; NotifyPropertyChanged("Value"); NotifyPropertyChanged("ValueFormatted"); } }
public string ValueFormatted { get { return "Static Text: " + _value; } }
什么是NotifyPropertyChanged?我是Silverlight / C#的新手,我只看到了INotifyPropertyChanged界面。我该如何实施这个解决方案?
答案 0 :(得分:4)
您尝试解决的问题实际上并不需要INotifyPropertyChanged接口。如果删除NotifyPropertyChanged方法并将INotifyPropertyChanged接口绑定到ValueFormatted属性,它将正常工作。
然而,在绑定到UI的类上实现INotifyPropertyChanged通常是个不错的主意:
“INotifyPropertyChanged接口用于通知属性已更改,从而强制绑定对象获取新值。”
这基本上意味着如果在绑定对象后更改对象的属性,则值将反映在UI中。
Silverlight节目提供了一个不错的simple example of INotifyPropertyChanged
答案 1 :(得分:0)
您需要在界面上实现INotifyPropertyChanged对象。 NotifyPropertyChanged你看到只有一个方法调用引发了PropertyChanged事件。
INotifyPropertyChanged上的MSDN page实际上有一个非常好的样本。一旦实现了INotifyPropertyChanged,您就可以做到这一点没问题。样本甚至具有NotifyPropertyChanged方法,与解决方案片段相同。
答案 2 :(得分:0)
您看起来想要一个属性转换器,您可以在xaml标记中指定转换器,然后在绘制内容时,它首先被发送到您的转换器类,并使用返回值而不是原始值。 / p>
我现在不在家,但应该在一个小时左右,并以一个例子更新。