Hi,
I've written some code for adding a ContentPane to a TabGroupPane. So far so good:
view.TabsGroup.Items.Add(contentPane);view.TabsGroup.SelectedItem = contentPane;
where view.TabsGroup is a TabGroupPane and contentPane is a ContentPane.
The issue is that the new tab always appears at the beginning (e.g. it is always the leftmost), while I want them to appear at the end. I tried:
view.TabsGroup.Items.Insert(view.TabsGroup.Items.Count, contentPane);view.TabsGroup.SelectedItem = contentPane;
but the issue persists. it appears that the order is not taken into account.
Any ideas?
Thanks,Sam
This TabGroupPane must be within the DocumentContentHost. If so then this is the expected behavior. The TabGroupPane in the DocumentContentHost is designed to emulate the tabbed interface of VS and in VS when a pane is selected and is not in view then it will be moved into view (by making it the first tab item). The only way to prevent that would be to use a different ItemsPanel. By default the TabGroupPane in a DocumentContentHost uses our DocumentTabPanel which only creates elements for the tabs fully in view (as VS does). Note if you do use a different ItemsPanel (e.g. our TabItemPanel) you will likely alo need to retemplate the TabGroupPane since there will be no scroll elements in that template (since the tabbed interface doesn't support scrolling). Our default template has a key of TabGroupPane.DocumentTabGroupTemplateKey.
Thank you for your reply.
I realize what you're saying and it would make sense for Items.Add. However the fact that Items.Insert does not respect the index being provided (or that apparently there is no way to programmatically rearrange the order of tabs) sounds more like a bug to me.
Consider that the collection of tabs in Items is sorted (if you rearrange tabs from the UI you can see the change in the list). So it would make sense to me to be able to insert at any position. Even more so given that the API provides a method especially conceived for that.
I will give it a try for the re-templating using TabItemPanel, but please consider opening a ticket for the behavior.