Есть несколько вкладок в Tabcontrol. Хочу получить список чекбоксов, которые прокликаны.
<TabControl x:Name="tabControl" HorizontalAlignment="Left" Height="399" Margin="10,10,0,0" VerticalAlignment="Top" Width="324">
<TabItem Header="Tweaks">
<ListBox x:Name="checkedListBoxTweaks" ItemsSource="{Binding AvailableFrames}">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<CheckBox x:Name="CheckBox_TestCase" Content="{Binding Name}"
IsChecked="{Binding IsChecked}"/>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</TabItem>
</TabControl>
Для этого я использую следующий хелпер
private static T FindVisualChild < T > (DependencyObject parent) where T: DependencyObject {
for (int childCount = 0; childCount < VisualTreeHelper.GetChildrenCount(parent); childCount++) {
DependencyObject child = VisualTreeHelper.GetChild(parent, childCount);
if (child != null && child is T)
return (T) child;
else {
T childOfChild = FindVisualChild < T > (child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}
В принципе всё работает, но получаю данные только с АКТИВНОЙ вкладки, а мне нужно со всех
var els = FindVisualChild<ListBox>(tabControl);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости