![]() |
1
11
哇,真令人惊讶。在依赖属性上设置值时,绑定表达式将在值强制运行之前更新! 如果查看Reflector中的DependencyObject.setValueCommon,可以在方法的中途看到对Expression.setValue的调用。对将调用强制值回调的updateEffectiveValue的调用在绑定更新后的最后。 您也可以在框架类上看到这一点。从新的WPF应用程序中,添加以下XAML:
以及以下代码:
如果拖动滑块,然后单击按钮,将收到一条消息,如“值从11更改为-1;滑块从11更改为10”。 |
![]() |
2
5
旧问题的新答案::-)
在注册时
现在的绑定源
你可以这样做:
这样可以避免使用DependencyProperty的非强制值更新绑定。 |
![]() |
3
-1
你是在胁迫
同样的逻辑也适用于basevalue。它是通过值传递的(不是通过引用传递的),因此更改它不会更改实际参数。
您可能需要研究将属性数据类型更改为引用类型。然后它将通过引用传递,所做的任何更改都将反映回源代码。假设数据绑定过程不创建副本。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |