gpt4 book ai didi

wpf - 依赖属性 SetValue() 和 SetCurrentValue() 之间有什么区别

转载 作者:行者123 更新时间:2023-12-03 06:08:06 26 4
gpt4 key购买 nike

我之所以问这个问题是因为@Greg D(来自 this question )推荐我使用 SetCurrentValue() 代替,但是查看文档并没有看到有什么不同。或者说“不改变其值(value)来源”是什么意思?

SetValue()

Sets the local value of a dependency property, specified by itsdependency property identifier.

SetCurrentValue()

Sets the value of a dependency property without changing its valuesource.

最佳答案

您提供的 MSDN 链接说得很好:

This method is used by a component that programmatically sets the value of one of its own properties without disabling an application's declared use of the property. The SetCurrentValue method changes the effective value of the property, but existing triggers, data bindings, and styles will continue to work.

假设您正在编写 TextBox 控件,并且公开了人们经常使用的 Text 属性,如下所示:

<TextBox Text="{Binding SomeProperty}"/>

在控件的代码中,如果调用 SetValue,您将使用您提供的任何内容覆盖绑定(bind)。但是,如果您调用 SetCurrentValue,将确保该属性采用给定值,但不会破坏任何绑定(bind)。

据我所知,格雷格的建议是不正确的。您应该始终使用 CLR 包装器属性中的 GetValue/SetValueSetCurrentValue 在您需要属性采用给定值但又不想覆盖针对您的属性配置的任何绑定(bind)、触发器或样式的情况下更有用。

关于wpf - 依赖属性 SetValue() 和 SetCurrentValue() 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230698/

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