Использование GridSplitter с сетками с динамическим числом элементов - PullRequest
0 голосов
/ 16 января 2012

У меня есть динамическое количество элементов в сетке и я использую шаблон для визуализации:

<UserControl x:Class="MUSTANG.GUI.TableModule.Controls.ColumnAxis"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" >
    <UserControl.Resources>
        <Style  TargetType="ListViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">

                        <!-- Here will be the layout of the elements from the ListView -->

                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
        <Style TargetType="ListView">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=TreeItemChildren.Count}" Value="0">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>

    <ListView ItemsSource="{Binding Path=RootItem.TreeItemChildren}" Padding="{Binding Path=RootItem.PaddingFixWindows6}">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <!-- Somewhere here should be a GridSplitter -->
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">

                </StackPanel>
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
    </ListView>
</UserControl>

Теперь я хочу использовать GridSplitter для каждого элемента в ListView. Все, что я пробовал, не работает, потому что ItemsPanelTemplate ожидает только одного VisualTree (поэтому я не могу поместить Gridsplitter под StackPanel).

Есть ли возможность сделать это по-другому? Возможно, из-за-кода? Мне нужно решить основную проблему, заключающуюся в том, что у меня динамическое количество элементов, и я хочу использовать какие-то разделители между ними.

Справочная информация: я должен использовать шаблон из-за рекурсивных вызовов. В исходном коде после первой сетки находится другой ListView.

...