无论如何从附加属性类型的属性更改回调中获取附加属性的实例?
换句话说,如果你有:
public class MyAttachedPropertyClass
{
public static readonly DependencyProperty MyProperty = DependencyProperty.RegisterAttached(
"My", typeof(int), typeof(MyAttachedPropertyClass), new FrameworkPropertyMetadata(0, OnMyPropertyChanged));
private static void OnMyPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//TODO: access instance of MyAttachedPropertyClass
}
}
我需要访问MyAttachedPropertyClass的实例,以便我可以设置另一个属性的值。
答案 0 :(得分:2)
通常,根据我的经验,附加属性所拥有的类型是静态的。当不是静态时,在设置附加属性时,不会实例化拥有类型的实例。如果这就是你真正想要的,你将不得不做更多的工作。
基本上,您需要自己在某个时刻实例化实例,然后在OnMyPropertyChanged
中访问它,可能是通过某种静态状态。
我不确切地知道您要实现的目标,但作为替代方案,您可以在DependencyObject
d
“OnMyPropertyChanged
”中设置其他附加属性。所以,如果你想要保留某种状态,你可以把它放在另一个附属物中。
此时,我发现MyAttachedPropertyClass
可能是使用Grid
或DockPanel
等附加属性的排序的控件。在这种情况下,MyAttachedPropertyClass
可能是DependencyObject
“d
”的父级,您可以使用VisualTreeHelper类访问它。
此时,我只是在黑暗中拍摄答案。如果您有关于您正在尝试做什么的更多详细信息,我可以帮助您。