如何访问嵌套的列表框?
本文关键字:列表 嵌套 何访问 访问 | 更新日期: 2023-09-27 17:49:15
<Grid x:Name="ContentPanel3" Grid.Row="1" Margin="12,0,12,0">
<ScrollViewer>
<StackPanel>
<ListBox Height="500" Padding="2" Name="listBox1" ItemsSource="{Binding School}" Width="460">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="elementtype" Text="{Binding type}"/>
<ListBox x:Name="underlist" ItemsSource="{Binding listschoolclass}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="elementssalle" Text="{Binding room}"/>
<TextBlock Name="elementsdebut" Text="{Binding teacher}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</ScrollViewer>
</Grid>
这是我的问题:在示例中,我可以使用这种方法访问元素listBox1
:例如listBox1.ItemSource = ...
。但是我无法到达元素underlist,它是嵌套的Listbox
您可以在
等资源中定义下列表 <Window.Resources>
<ListBox x:Key="underlist" ItemsSource="{Binding listschoolclass}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="elementssalle" Text="{Binding room}"/>
<TextBlock Name="elementsdebut" Text="{Binding teacher}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Window.Resources>
然后你的主xaml就像
<Grid x:Name="ContentPanel3" Grid.Row="1" Margin="12,0,12,0">
<ScrollViewer>
<StackPanel>
<ListBox Height="500" Padding="2" Name="listBox1" ItemsSource="{Binding School}" Width="460">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="elementtype" Text="{Binding type}"/>
<ContentControl Content="{StaticResource underlist}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</ScrollViewer>
</Grid>
在.cs文件中可以通过
访问资源this.FindResource("underList")