我使用两个不同的ItemsControl来生成按钮列表。
<WrapPanel Orientation="Horizontal">
<ItemsControl ItemsSource="{Binding Commands}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command="{Binding}">
<!-- ... -->
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ItemsControl ItemsSource="{Binding CurrentTransaction.Modifiers}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ToggleButton IsChecked="{Binding IsEnabled}">
<!-- ... -->
</ToggleButton>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</WrapPanel>
第二个ItemsControl的按钮出现在一个新的&#34; Line&#34;
上
第二个ItemsControl的按钮是否可能直接出现在第一个ItemsControl的按钮之后?按钮的数量可能会有所不同。它应该是这样的:
答案 0 :(得分:1)
您可以将两个项目集合合并为一个,并且只有一个带有ItemTemplateSelector的ItemsControl,它会为每个项目返回相应的DataTemplate。