gpt4 book ai didi

c# - 如何创建具有可变数量 StackPanel 的 StackPanel 的 DataTemplate

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:50 26 4
gpt4 key购买 nike

我正在尝试创建一个 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 中的元素将被绑定(bind)。

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

有什么可行的替代方案吗?

最佳答案

您应该将 ItemsControlItemsSource 绑定(bind)到您的源列表。在 ItemsControl.ItemsPanel 中,您可以设置要用于项目的面板。在您的情况下,您应该使用 StackPanelOrientation=Vertical 作为 ItemsPanel。参见 first sample here .但是垂直 StackPanel 已经是默认的 ItemsPanel 所以你可以省略它。

内部 StackPanel 应在您的 ItemsControl 中指定为 ItemTemplate

您的 XAML 应如下所示:

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

关于c# - 如何创建具有可变数量 StackPanel 的 StackPanel 的 DataTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13195494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com