This is a migrated thread and some comments may be shown as answers.

UIElementExtensions class problem

0 Answers 40 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Rick
Top achievements
Rank 1
Rick asked on 09 Oct 2010, 02:06 AM
I reflector the extension method "ParentOfType<T>"

public static T (System.Windows.UIElement):">ParentOfType<T>(this UIElement element) where T: DependencyObject
{
    if (element == null)
    {
        return default(T);
    }
    DependencyObject parent = VisualTreeHelper.GetParent(element);
    while ((parent != null) && !(parent is T)) //is here need check parent is a UIElement
 { 
        DependencyObject newVisualParent = VisualTreeHelper.GetParent(parent); //if the parent is not UIElement ( like: InlineUIContainer), will occur a  InvalidOperationException
        if (newVisualParent != null)
        {
            parent = newVisualParent;
        }
        else
        {
            if (!(parent is FrameworkElement))
            {
                break;
            }
            parent = (parent as FrameworkElement).Parent;
        }
    }
    return (parent as T);
}

No answers yet. Maybe you can help?

Tags
General Discussions
Asked by
Rick
Top achievements
Rank 1
Share this question
or