将复杂类绑定(bind)到用户控件以供重用时,“最佳”(或最常用)方法是什么?
我正在尝试为类创建一些可重用的库,但我不确定应该使用哪种方法。示例:我想创建一个 Address 库来定义和 Address 类(具有属性 Line1、Line2 等)、它的验证逻辑和一个 AddressControl,它充当查看器/编辑器,每个属性都有绑定(bind)字段。
在使用中,我可能有一个具有 BillingAddress、DeliveryAddress 属性的客户类,因此我想将它们绑定(bind)到我的客户控件中:
<addressLib:AddressControl [xxx]="{Binding BillingAddress}" />
所以问题是我在 XXX 中放了什么?
最初我想在控件上创建一个 DependencyProperty 'Address':
<addressLib:AddressControl Address="{Binding BillingAddress}" />
但现在我在想我肯定可以只使用现有的 DataContext 属性吗?
<addressLib:AddressControl DataContext="{Binding BillingAddress}" />
这是最好的方法吗?是否有任何问题,例如更新或 NotifyPropertyChange 问题?
非常感谢您的帮助!
最佳答案
要记住的一个区别是,使用依赖属性您会收到更改通知,而使用数据上下文则不会(至少在 SL5 发布之前不会)
关于silverlight - 将 Silverlight UserControl 绑定(bind)到复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6109473/