程序数据绑定

本文关键字:数据绑定 程序 | 更新日期: 2023-09-27 17:58:07

我正试图了解数据绑定的威力和复杂性。我正在开发一个相当复杂的应用程序,它需要一个视图模型来聚合所有不同的数据,然后将该模型绑定到用户控件。

我的视图模型的结构是创建许多类来管理各个数据元素,我想通过编程将这些类绑定在一起,即在UI之外。

我需要将两个看似不相关的类的数据元素绑定在一起。然后,我可以使用xaml将聚合类数据带到UI中。

换句话说,类"A"answers"B"每个都有一个声明为"Name"的字符串。我想实现它们的双向绑定,这样当"名称"更改时,绑定就会负责数据更新。

这项任务看起来很容易,但我找不到任何例子。

程序数据绑定

当涉及到数据绑定时,这个MSDN页面是高度相关的。

您应该注意,绑定要求目标属性为DependecyProperty,并且绑定在概念上是单向的,它们可以双向进行,而只能在一端进行设置。

您通常不希望DependencyProperties是您的模型,因为它要求它从DependencyObject继承。通过在两个类中引用相同的名称包装对象来实现这种关系可能更好。

绑定非UI视图模型类会很复杂,因为您必须手动挂接属性更改通知,然后设置聚合属性。但是MultiBinding是专门为这个场景设计的。

与其创建聚合类属性/类,不如尝试MultiBinding,http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx

另一种方法是使用以下LambdaBinding扩展轻松创建MultiBinding。

免责声明:我将在这里谈论我公司的产品。

我们有一种叫做Lambda绑定的东西,它允许您绑定涉及其他控件和任何其他数据项的复杂表达式。

http://uiatoms.neurospeech.com/2011/03/ui-atoms-1-7-5-released/