包装ItemsControls的内容

时间:2012-12-21 15:18:52

标签: .net wpf xaml itemscontrol

我使用两个不同的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;

enter image description here

第二个ItemsControl的按钮是否可能直接出现在第一个ItemsControl的按钮之后?按钮的数量可能会有所不同。它应该是这样的:

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以将两个项目集合合并为一个,并且只有一个带有ItemTemplateSelector的ItemsControl,它会为每个项目返回相应的DataTemplate。