1
11
哇,真令人惊讶。在依赖属性上设置值时,绑定表达式将在值强制运行之前更新! 如果查看Reflector中的DependencyObject.setValueCommon,可以在方法的中途看到对Expression.setValue的调用。对将调用强制值回调的updateEffectiveValue的调用在绑定更新后的最后。 您也可以在框架类上看到这一点。从新的WPF应用程序中,添加以下XAML:
以及以下代码:
如果拖动滑块,然后单击按钮,将收到一条消息,如“值从11更改为-1;滑块从11更改为10”。 |
2
5
旧问题的新答案::-)
在注册时
现在的绑定源
你可以这样做:
这样可以避免使用DependencyProperty的非强制值更新绑定。 |
3
-1
你是在胁迫
同样的逻辑也适用于basevalue。它是通过值传递的(不是通过引用传递的),因此更改它不会更改实际参数。
您可能需要研究将属性数据类型更改为引用类型。然后它将通过引用传递,所做的任何更改都将反映回源代码。假设数据绑定过程不创建副本。 |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
Arijit · 移动画布内绘制的矩形 2 年前 |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |