gpt4 book ai didi

c# - 绑定(bind)到依赖属性魔法

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:53 25 4
gpt4 key购买 nike

我有一个依赖属性:

public bool IsApproved //Dependency property
{
get { return (bool)GetValue(IsApprovedProperty); }
set { SetValue(IsApprovedProperty, value); }
}

public static readonly DependencyProperty IsApprovedProperty =
DependencyProperty.Register("IsApproved", typeof(bool), typeof(MyClass), new UIPropertyMetadata(true));

还有 2 个控件绑定(bind)到这个属性:

当我选中/取消选中该复选框时,mypanel 的可见性会发生变化并且正常。但是,当我将断点放入 IsApproved 的 get 和 set 时 - 它永远不会停在那里。

它是如何工作的?

谢谢

最佳答案

来自 MSDN :

Because the current WPF implementation of the XAML processor behavior for property setting bypasses the wrappers entirely, you should not put any additional logic into the set definitions of the wrapper for your custom dependency property. If you put such logic in the set definition, then the logic will not be executed when the property is set in XAML rather than in code.

换句话说,框架不使用 CLR 包装器属性。如果您直接通过代码设置 CLR 属性,那么 set 逻辑当然会运行。要检测框架对属性的更改,您需要在注册期间使用元数据属性注册一个 PropertyChanged 回调。

关于c# - 绑定(bind)到依赖属性魔法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26126591/

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