【问题标题】:How to bind a usercontrol to update value on a specific type of class如何绑定用户控件以更新特定类型类的值
【发布时间】:2011-09-20 06:07:56
【问题描述】:

我正在创建一个用于编辑地址类的用户控件。地址类实现了Inotifypropertychanged,具有街道、邮编、编码等属性。

然后我有一个包含地址类的客户类。

我想创建一个用于编辑地址的用户控件,以便将地址控件绑定到客户的地址属性。当我更改用户控件中的地址时,应该更新地址属性。

<UIComponents:AddressControl  Address="{Binding Address, Mode=TwoWay}"/>

地址是一个依赖属性。 客户类的属性也实现了 inotifypropertychanged,但从不调用该集合。我怀疑这是因为实际对象并没有仅仅改变一个子属性。

那么当对象改变时如何让它调用setter呢?

问候 莫腾

【问题讨论】:

    标签: wpf user-controls wpf-controls binding


    【解决方案1】:

    在您的 Customer 类中,将 Address 对象的 PropertyChanged 事件挂钩到我们将调用 ReflectPropertyChanged 的​​处理程序。 ReflectPropertyChanged 将对您的 Address 成员调用 NotifyPropertyChanged。

    如果您这样做,请不要忘记在您的 Address 依赖属性中实现一个 PropertyChanged 处理程序,该处理程序会在设置新地址时从旧值中删除该处理程序。

    【讨论】:

    • 所以基本上我需要在父类中监听地址类子属性Address的变化,然后在Address属性上做PropertyChanged(this, new...)?
    • 是的,差不多就是这样。当您的 Address 对象中发生属性更改时,您希望将其反映到 Customer 类中 Address 属性的属性更改中。
    猜你喜欢
    • 2010-10-02
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2012-03-10
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多