我有一个数据绑定项控件的以下XAML来显示一个组列表,带有一个标签和按钮,用于添加首先出现的新组:
<WrapPanel Orientation="Horizontal">
<Label Content="Groups" />
<Button x:Name="btnGroupAdd" Click="btnGroupAdd_Click" Content="+" />
<ItemsControl ItemsSource="{Binding}" x:Name="_groupList" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal">
</WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border Padding="3" BorderThickness="1">
<WrapPanel>
<CheckBox x:Name="_groupEnabled" Click="GroupEnabled_Click" IsChecked="{Binding Path=Checked}">
<TextBlock x:Name="_groupName" Text="{Binding Path=Group.Name}" ></TextBlock>
</CheckBox>
<Button x:Name="_deleteGroup" FontStyle="Normal" Click="DeleteGroup_Click" />
</WrapPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
对于少数组,一切都出现在一行上。
Groups + Group1 Group2 Group3
当我添加更多组时,包含项目的包装面板会换行,但添加新组的初始标签和按钮位于其自己的行上,数据绑定组从下一行开始。
团体+
Group1 Group2 Group3 Group4
组5
我可以理解为什么会发生这种情况,因为包装面板是嵌套的。我的问题是:如何在内部包装面板中包含第一个标签和按钮,以使它们不在自己的行上?
组+组1组2组3 Group4 Group5
答案 0 :(得分:1)
如果您对此感到满意:
组+组1组2组3 Group4 Group5
然后我建议使用外Grid
和内WrapPanel
。否则,您的选择是:
Label
和Button
)或在您绑定的集合中表示这些控件的视图模型。Panel
。