gpt4 book ai didi

c# - 获取依赖属性内的 'this' 指针更改回调

转载 作者:可可西里 更新时间:2023-11-01 08:36:54 25 4
gpt4 key购买 nike

我在一个类中有以下依赖属性:

class FooHolder
{
public static DependencyProperty CurrentFooProperty = DependencyProperty.Register(
"CurrentFoo",
typeof(Foo),
typeof(FooHandler),
new PropertyMetadata(OnCurrentFooChanged));

private static void OnCurrentFooChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
FooHolder holder = (FooHolder) d.Property.Owner; // <- something like this

// do stuff with holder
}
}

我需要能够检索对更改的属性所属的类实例的引用。

这是因为 FooHolder 有一些事件处理程序需要在属性值更改时挂接/取消挂接。属性更改回调必须是静态的,但事件处理程序不是。

最佳答案

像这样:(你必须自己定义 UnwireFoo() 和 WireFoo())

private static void OnCurrentFooChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
FooHolder holder = (FooHolder)d; // <- something like this

holder.UnwireFoo(e.OldValue as Foo);
holder.WireFoo(e.NewValue as Foo);
}

当然,FooHolder 必须继承自 DependencyObject

关于c# - 获取依赖属性内的 'this' 指针更改回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2453146/

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