Неожиданное поведение ItemsControl Template / ItemTemplate - PullRequest
0 голосов
/ 07 сентября 2011

Я хотел бы представить сводный список бок о бок, поэтому я создал небольшой ItemsControl для достижения этой цели:

    <ItemsControl x:Name="GRS">
        <ItemsControl.Template>
            <ControlTemplate>
                <StackPanel Orientation="Horizontal" Margin="10">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="Round" FontSize="20" />
                        <TextBlock Text="Food" FontSize="20" />
                        <TextBlock Text="Harvest" FontSize="20" />
                        <TextBlock Text="State" FontSize="20" />
                        <TextBlock Text="Private" FontSize="20" />
                        <TextBlock Text="Value" FontSize="20" />
                        <TextBlock Text="Type" FontSize="20" />
                    </StackPanel>
                    <ItemsPresenter />
                </StackPanel>
            </ControlTemplate>
        </ItemsControl.Template>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border Margin="10" BorderBrush="Black" BorderThickness="2">
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="{Binding Path=RoundNumber}" FontSize="20" />
                        <TextBlock Text="{Binding Path=PlayerAndModusSetting.FoodCost}" FontSize="20" />
                        <CheckBox IsChecked="{Binding Path=IsHarvest}" FontSize="20" />
                        <TextBlock Text="{Binding Path=PlayerAndModusSetting.StateBuildProject}" FontSize="20" />
                        <TextBlock Text="{Binding Path=PlayerAndModusSetting.PrivateBuildProject}" FontSize="20" />
                        <TextBlock Text="{Binding Path=Value}" FontSize="20" />
                        <TextBlock Text="{Binding Path=ShipType}" FontSize="20" />
                    </StackPanel>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

Когда я устанавливаю ItemsSource & run, результатом являются списки, ориентированные вертикальновместо горизонтали.

Example of wrong behaviour

Как видите, первый идет бок о бок, но после этого он продолжается вниз, и я не могу сказать, почему.

Спасибо.

1 Ответ

0 голосов
/ 07 сентября 2011

Родительский элемент управления вашего шаблона элемента - StackPanel - каждый элемент - StackPanel, содержащийся внутри StackPanel - вам нужно изменить контейнер вокруг вашего ItemsPresenter на WrapPanel, если хотите.для горизонтальной укладки.

Пример:

                </StackPanel>
                <WrapPanel>
                    <ItemsPresenter />
                </WrapPanel>
            </StackPanel>
...