wpf заставляет строить визуальное дерево
У меня есть ItemsControl с сеткой как ItemsPanelTemplate
<ItemsControl ItemsSource="{Binding CellCollection}" Name="CellGrid">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid Name="grid" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Я создаю некоторый UserControl с этим ItemControl внутри внутри кода, а затем мне нужно создать RowDefinitions и ColumnDefinitons. Я использую этот метод для получения "сетки":
private TChildItem FindVisualChild<TChildItem>(DependencyObject obj) where TChildItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
var child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is TChildItem)
return (TChildItem)child;
var childOfChild = FindVisualChild<TChildItem>(child);
if (childOfChild != null)
return childOfChild;
}
return null;
}
Но если я вызываю этот метод перед показом UserControl, он возвращает ноль, поэтому я не могу найти доступ & quot; grid & quot; и когда появляется UserControl, он отображается не так, как я ожидал.
Я пытался Google, но все, что я нашел, это предположение, что VisualTree не строит для ItemControl, пока он не показывается в форме.
Какие-либо предложения? Спасибо и извините за плохой английский;)