Вы должны иметь возможность просто использовать функцию GetGridControl.
DevExpress GetGridControl Link
В противном случае (в идеале это работает) вы можете использовать следующее, я использую это для некоторых мест, где мне нужно найти родителей и т. Д.
private static DependencyObject FindParent(this DependencyObject obj, Predicate<DependencyObject> where)
{
var parent = VisualTreeHelper.GetParent(obj);
if (parent == null || where(parent))
{
return parent;
}
return parent.FindParent(where);
}
public static T FindParentOfType<T>(this DependencyObject obj) where T : DependencyObject
{
return (T) FindParent(obj, x => x is T);
}
Так что тогда вы можете просто пойти:
var grid = mylookupedit1.FindParentOfType<GridControl>();
EDIT:
Поскольку я неправильно понял вопрос, здесь есть другой подход к получению ребенка.
Ранее я пробовал много разных способов сделать это, однако ни один из них не работал, я пытался пройти через всех детей и т. Д. И т. Д. Но ни один из них фактически не получил GridControl. Итак, мы сделали следующее:
В объявлении вашего GridControl добавьте событие Loaded:
<dxg:GridControl Name="PART_GridControl" Loaded="LoadedEvent">
Затем в вашем коде создайте переменную для хранения сетки:
private GridControl theGridInTheControlTemplate;
И тогда вы можете реализовать обработчик LoadedEvent:
private void LoadedEvent(object sender, RoutedEventArgs e)
{
theGridInTheControlTemplate = (GridControl)sender;
}
так что теперь вы можете использовать theGridInTheControlTemplate в своем коде.
Я знаю, что это не кажется слишком чистым, но это единственный способ, которым я нашел, что это работает.
Надеюсь, это поможет,
Ричард