|
|
1
3
最简单的方法之一是将事件处理程序添加到处理来自m_address对象的通知事件的人员:
|
|
|
2
1
你回答这个问题时说
某人正在订阅某人,并且无法知道地址是否已更改。 所以你必须自己处理这种情况(这很容易实现)。 |
|
|
3
0
如果你想让子对象看起来像是它们的父对象的一部分,你需要自己做泡泡。 在您的示例中,您将绑定到视图中的“Address.Street”,因此需要冒泡包含该字符串的notifypropertychanged。 我写了一个简单的助手来做这个。您只需在父视图模型构造函数中调用BubblePropertyChanged(x=>x.BestFriend)。注意:有一个假设,你在你的父母中有一个名为NotifyPropertyChanged的方法,但是你可以根据需要修改它。
|
|
|
4
0
不过,这是个老问题。。。 我最初的方法是将更改的子属性附加到父属性。这有一个优势,消费父母的事件很容易。只需要订阅家长。
用法很简单:
然而,这种方法不是非常灵活的,没有对它的控制,至少没有额外的复杂工程。如果订阅系统具有遍历嵌套数据结构的灵活性,其适用性仅限于第一级子级。 虽然根据使用情况,这些警告可能是可以接受的,但我已经不再使用这种方法,因为它永远无法确定数据结构最终将如何使用。目前比较喜欢这样的解决方案: https://github.com/buunguyen/notify 这样即使是复杂的数据结构也是简单和可预测的,它由订户控制如何订阅和如何响应,它很好地发挥了绑定引擎的功能。 |