Получить UserControl дочернего элемента управления в Windows 10
У меня есть UserControl, который состоит из нескольких дочерних элементов управления, позволяет вызвать его MyUserControl
,
Таким образом, он содержит textbox
среди других элементов управления, как ребенок. Если у меня есть ребенок textbox
, Как я могу получить MyUserControl
как родитель, а не только Grid
тот textbox
проживает в.
Есть статический метод, который я нашел, но он не работает.
public static T GetParentOfType<T>(this Control control)
{
const int loopLimit = 100; // could have outside method
var current = control;
var i = 0;
do
{
current = current.Parent;
if (current == null) throw new Exception("Could not find parent of specified type");
if (i++ > loopLimit) throw new Exception("Exceeded loop limit");
} while (current.GetType() != typeof(T));
return (T)Convert.ChangeType(current, typeof(T));
}
линия current = current.Parent;
говорит не может конвертировать DependencyObject
в Control
1 ответ
Я просто бросил как FrameworkElement
и это работает.
public static T GetParentOfType<T>(this FrameworkElement control)
{
const int loopLimit = 3; // could have outside method
FrameworkElement current = control;
var i = 0;
do
{
current = current.Parent as FrameworkElement;
if (current == null) throw new Exception("Could not find parent of specified type");
if (i++ > loopLimit) throw new Exception("Exceeded loop limit");
} while (current.GetType() != typeof(T));
return (T)Convert.ChangeType(current, typeof(T));
}