![]() |
1
11
哇,真令人惊讶。在依赖属性上设置值时,绑定表达式将在值强制运行之前更新! 如果查看Reflector中的DependencyObject.setValueCommon,可以在方法的中途看到对Expression.setValue的调用。对将调用强制值回调的updateEffectiveValue的调用在绑定更新后的最后。 您也可以在框架类上看到这一点。从新的WPF应用程序中,添加以下XAML:
以及以下代码:
如果拖动滑块,然后单击按钮,将收到一条消息,如“值从11更改为-1;滑块从11更改为10”。 |
![]() |
2
5
旧问题的新答案::-)
在注册时
现在的绑定源
你可以这样做:
这样可以避免使用DependencyProperty的非强制值更新绑定。 |
![]() |
3
-1
你是在胁迫
同样的逻辑也适用于basevalue。它是通过值传递的(不是通过引用传递的),因此更改它不会更改实际参数。
您可能需要研究将属性数据类型更改为引用类型。然后它将通过引用传递,所做的任何更改都将反映回源代码。假设数据绑定过程不创建副本。 |
![]() |
Christian · 角度材质垫按钮切换组数据绑定不工作 3 年前 |
![]() |
Drarig29 · 将堆栈(可以切换)绑定到列表框 6 年前 |
![]() |
Xsayar · 如何将两个命令绑定到WPF按钮? 6 年前 |
![]() |
Infii · 带有自定义数据模板的水平ListView 7 年前 |
![]() |
knutter539 · WPF数据绑定链接文本块文本到组合框选择 7 年前 |
![]() |
Mark Denom · 我的数据绑定是如何写出长度属性的? 7 年前 |