在依赖属性中获取'this'指针会改变回调

Miz*_*zor 11 c# dependency-properties

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

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
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

Cat*_*ICU 17

这样的事情:(你必须自己定义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);
}
Run Code Online (Sandbox Code Playgroud)

当然,FooHolder必须继承自DependencyObject