请帮助我了解值“ABC”的存储位置。当我运行内存分析器时,我没有看到任何 MyClass 实例,事实上绑定(bind)有效,并且 GroupBox.Header 获取值 ABC...
感谢您的帮助。
<GroupBox Header="{Binding Path=(local:MyClass.Tag1), RelativeSource={RelativeSource Self}}"
local:MyClass.Tag1="ABC" />
public class MyClass
{
public static readonly DependencyProperty Tag1Property = DependencyProperty.RegisterAttached("Tag1", typeof(object), typeof(MyClass), new UIPropertyMetadata(null));
public static object GetTag1(DependencyObject obj)
{
return obj.GetValue(Tag1Property);
}
public static void SetTag1(DependencyObject obj, object value)
{
obj.SetValue(Tag1Property, value);
}
}
最佳答案
依赖属性在内部维护一个字典。使用稀疏存储机制来存储值。这些属性在类级别关联 - 是静态的。值 ABC 以键值对的形式存储在字典中
关于WPF/附加属性 - 请解释为什么它有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270764/