我正在尝试了解数据绑定的强大功能和复杂性。我正在开发一个相当复杂的应用程序,它需要一个视图模型来聚合所有不同的数据,然后将该模型绑定到用户控件。
我的视图模型被构造为创建大量的类来管理各个数据元素,并且我希望通过编程将这些类绑定在一起,即在UI之外。
我需要将两个看似不相关的类的数据元素绑定在一起。然后,我可以使用xaml将聚合类数据带到UI。
换句话说,类"A“和"B”都有一个声明为"Name“的字符串。我想实现这两个类的双向绑定,这样当"Name”发生变化时,绑定就会处理数据更新。
这项任务看起来很简单,但我找不到任何示例。
发布于 2011-06-02 10:51:30
当涉及到数据绑定时,this MSDN page是高度相关的。
您应该注意到,绑定要求目标属性为DependecyProperty,并且绑定在概念上是单边的,它们只是可以双向进行,而只在一端进行设置。
您通常不希望将DependencyProperties作为您的模型,因为它需要从DependencyObject继承。通过在两个类中引用相同的名称包装对象来实现这种关系可能会更好。
发布于 2011-06-02 14:32:53
绑定非UI视图模型类将很复杂,因为您必须手动挂钩属性更改的通知,然后设置聚合属性。但是MultiBinding是专门为这个场景设计的。
您应该尝试使用MultiBinding、http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx,而不是创建聚合类属性/类
另一种方法是使用以下LambdaBinding扩展轻松创建MultiBinding。
免责声明:我将在这里谈论我公司的产品。
我们有一个叫做Lambda Binding的东西,它允许你绑定涉及其他控件和任何其他数据项的复杂表达式。
http://uiatoms.neurospeech.com/2011/03/ui-atoms-1-7-5-released/
https://stackoverflow.com/questions/6209586
复制相似问题