2

かなり複雑な UI があり、いくつかの問題が発生しています。

私はListBoxDataItems のセットを含む を持っています。DataTemplate各項目の はですExpander。ヘッダーはテキストで、の内容ExpanderListBox. にListBoxは SubDataItems が含まれています。The DataTemplate各 SubDataItem はExpanderです。

問題を再現する簡略化された XAML を次に示します。

  <ListBox ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <Expander Header="{Binding Header}">
          <ListBox ItemsSource="{Binding SubItems}">
            <ListBox.ItemTemplate>
              <DataTemplate>
                <Expander Header="{Binding SubHeader}">
                  <Grid Height="40">
                    <TextBlock Text="{Binding SubText}" />
                  </Grid>
                </Expander>
              </DataTemplate>
            </ListBox.ItemTemplate>
          </ListBox>
        </Expander>
      </DataTemplate>
    </ListBox.ItemTemplate>
  </ListBox>

レイアウトの作り方に問題があります。ExpanderSubDataItem に対応するものが展開されている場合、ListBoxItemこれを含むListBox(Expander.Content親のDataTemplate) はより多くのスペースを正しく要求します。したがって、すべての SubDataItems を展開して、データを正しく表示できます。ただし、折りたたむと、以前に展開するように要求したスペースは、によって再利用されるのではなく、空白のままになりListBoxItemます。

これは問題です。10 個の SubDataItems があり、それらすべてを同時に展開してから折りたたむと、かなりの量の空白が私の不動産を無駄にするためです。

ListBoxItemWPF を強制的に正しい状態にサイズ変更するにはどうすればよいですか?

4

1 に答える 1

3

DockPanelをルートとして使用してみましたListBoxItemsPanel、それぞれを持っていExpanderます DockPanel.Dock="Top"か?

于 2010-05-22T09:25:49.637 に答える