The following is an excerpt from my MainWindow.xaml. My question is about the part, where ItemsPanel
is set via an ItemsPanelTemplate
<TabControl Grid.Row="2" dd:SmallDragDropHelper.IsDragDropEnhanced="true"
ItemsSource="{Binding Path=TabCollection}" SelectedIndex="{Binding AktIndex, Mode=TwoWay}" TabStripPlacement="Top">
<TabControl.ItemTemplate>
<StaticResource ResourceKey="titemplate"/>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<StaticResource ResourceKey="tctemplate"/>
</TabControl.ContentTemplate>
<TabControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="true"></WrapPanel>
</ItemsPanelTemplate>
</TabControl.ItemsPanel>
</TabControl>
I understand that it is simple and working to write a single panel type as argument/content of the tag <ItemsPanelTemplate>
. But what I need/wish is to be able to write the following
<ItemsPanelTemplate>
<DockPanel>
<WrapPanel DockPanel.Dock="Left" IsItemsHost="true"></WrapPanel>
<Button DockPanel.Dock="Right">Add</Button>
</DockPanel>
</ItemsPanelTemplate>
The intention is, that the tabitem headers should be given to the wrap panel which is placed left in the DockPanel
and a button should be shown in the same line flush right.
But it seems, it is impossible to give such a nested construction of panels as argument to ItemsPanelTemplate
(at least it is not working as intended for me).
What is the right way to proceed here? (Googling gave me only examples with a single panel as argument to ItemsPanelTemplate
). (I would prefer a solution using no C# code, only .xaml)
question from:
https://stackoverflow.com/questions/65902658/giving-nested-panels-as-argument-to-itemspaneltemplate 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…