如何通知将附加属性卸载到定义它的类中?

时间:2012-03-01 13:54:01

标签: .net wpf attached-properties

对于我们的silverlight项目中的一个要求,我的一个队友已经编写了一个自定义ToolTipManager。我们希望工具提示即使在鼠标失控/工具提示后仍然可见。并且仅在用户点击其他位置时将其删除。因此这个自定义ToolTipManager类。

在这个类中,有一个附加属性ToolTipProperty,其中有OnToolTipPropertyChanged。在这种情况下,handeler将附加属性的控件引用添加到ToolTipManager中的私有列表中。

    private static void OnToolTipPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var owner = (UIElement)d;
        var newValue = e.NewValue;
        if (newValue != null)
            // ElementsAndToolTips is dictionary.
            ElementsAndToolTips.Add(new WeakReference(owner), newValue); 
    }

我希望在处理此控件时从列表中删除控件的引用。我在哪里可以做到是否有任何事件或方法如附加属性卸载/分离或类似的东西?

P.S。属性用于许多不同的控件,最好在ToolTipManager类中进行更改,而不是在许多不同的位置进行更改。

0 个答案:

没有答案