意外行为ItemsControl Template / ItemTemplate

时间:2011-09-07 18:56:20

标签: xaml itemscontrol stackpanel itemtemplate

我想并排呈现一个摘要列表,所以我创建了一个小的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&amp;运行,结果是列表垂直而不是水平。

Example of wrong behaviour

正如你所看到的,第一个是并排的,但在那之后,它继续向下,我不知道为什么。

感谢。

1 个答案:

答案 0 :(得分:-1)

您的项目模板的父级控件是StackPanel - 每个项目都是StackPanel,包含在StackPanel中 - 您需要更改ItemsPresenter周围的容器到WrapPanel,如果你想让它水平平铺。

示例:

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