using System.Windows; using System.Windows.Media; namespace Filtration.Common.Utilities { public class VisualTreeUtility { public static T FindParent(DependencyObject child) where T : DependencyObject { //get parent item var parentObject = VisualTreeHelper.GetParent(child); //we've reached the end of the tree if (parentObject == null) return null; //check if the parent matches the type we're looking for if (parentObject is T parent) { return parent; } return FindParent(parentObject); } } }