![](/img/trans.png)
[英]How to create DataTemplate dynamically and assign a StackPanel to it?
[英]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必须是单个元素。
任何可行的替代方案?
您应该将ItemsControl
与ItemsSource
绑定到源列表。 在ItemsControl.ItemsPanel
您可以设置要用于项目的面板。 在您的情况下,您应该使用StackPanel
, Orientation=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.