1
<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>

これは私の問題です: xaml.cs では、listBox1このメソッドで要素にアクセスできます:listBox1.ItemSource = ...たとえば。しかし、ネストされたリストボックスである要素のアンダーリストに到達できません。

4

1 に答える 1

0

次のようなリソースでアンダーリストを定義できます

  <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")

それが役に立てば幸い..

于 2012-12-24T02:10:39.773 に答える