gpt4 book ai didi

c# - 如何在未指定路径的代码隐藏中创建绑定(bind)?

转载 作者:行者123 更新时间:2023-11-30 15:41:26 25 4
gpt4 key购买 nike

我在回答 another question关于在代码隐藏中创建绑定(bind),我最初尝试回答它是发布未指定 Path 的绑定(bind)代码。此绑定(bind)编译正常,但该值永远不会更新。如果我将绑定(bind)更改为使用路径,它就可以正常工作。

这是为什么?在没有路径的代码隐藏中创建绑定(bind)的正确方法是什么?例如,我将如何在代码隐藏中重新创建 Value="{Binding }"

非工作代码:

Binding b = new Binding();
b.Source = SomeInt;
b.Mode = BindingMode.OneWay;
MyProgressBar.SetBinding(ProgressBar.ValueProperty, b);

SomeInt = 50;

工作代码:

Binding b = new Binding();
b.Source = this;
b.Path = new PropertyPath("SomeInt");
MyProgressBar.SetBinding(ProgressBar.ValueProperty, b);

SomeInt = 50;

最佳答案

绑定(bind)引擎订阅INPCDP -Source 对象上的更改(以及 Path 上的非叶子),并检查 Path 属性/属性是否已更改。如果没有 Path,则没有通知。一个相当不幸的缺点。

(我可能有点过于简化了系统,但本质是没有对源更改的更新,它们没有也不能被监控)


{Binding} 等同于 new Binding()(无附加属性),此绑定(bind)可能会随着 DataContext 的事件而更新变化。

关于c# - 如何在未指定路径的代码隐藏中创建绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com