繁体   English   中英

如何使用可变数量的StackPanels的StackPanel创建DataTemplate

[英]How to create a DataTemplate with a StackPanel of a variable number of StackPanels

我正在尝试创建一个DataTamplate,它应该包含一个具有一定数量StackPanel的StackPanel。

        <DataTemplate x:Key="DataTemplate">
        <StackPanel Orientation="Vertical">
            <StackPanel Orientation="Horizontal">
                <Rectangle Fill="Aqua" Margin="2" Height="100" Width="50"  VerticalAlignment="Top" HorizontalAlignment="Left"/>
            </StackPanel>
        </StackPanel>
    </DataTemplate>

上面的代码片段只是为了更好地理解我想要的结果,因为叠加的StackPanel中的元素将被绑定。

这会生成以下错误消息:ItemsPanelTemplate的VisualTree必须是单个元素。

任何可行的替代方案?

您应该将ItemsControlItemsSource绑定到源列表。 ItemsControl.ItemsPanel您可以设置要用于项目的面板。 在您的情况下,您应该使用StackPanelOrientation=Vertical作为ItemsPanel 请参见此处的第一个示 但垂直StackPanel已经是默认的ItemsPanel因此您可以省略它。

应在ItemsControl中将Inner StackPanel指定为ItemTemplate

您的XAML应如下所示:

<ItemsControl ItemsSource="...">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <!-- properties of your object should go here -->
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM