使用ItemsSource时添加额外的项目

在我正在构建的项目中,我有一个TabControl ,我想通过ItemsSource显示一系列选项卡。 我还需要在TabControl的开头有一些“概述”选项卡,它们不能位于ItemsSource

实现这一目标的最佳方法是什么,我能想到的唯一方法是在我的XAML中使用我的概述选项卡,只需通过代码手动添加选项卡项而不是使用ItemSource ,这是最好的方法。

您可以使用CompositeCollection ( MSDN )来完成此任务:

       SpecialItem     

对于任何人发现使用CollectionContainer使用HeaderTemplate / ContentTemplate的方法:

首先在ViewModel中添加Type属性

 public Type Type { get { return this.GetType(); } } 

使用Style.Triggers为Type属性标识的动态选项卡设置HeaderTemplate / ContentTemplate

                             

引用Anderson Imes的回答: https : //stackoverflow.com/a/1348369/1196637

您可以使用CompositeCollection 如何将通用项添加到绑定到WPF中的集合的ComboBox

     //Not bound something      

代码背后:

 cc.Collection=yourObservableCollection 

遗憾的是,您无法将ItemsSource绑定与显式添加的Items集合对象混合使用。 因此,您有两个选择,可以手动将固定项目和绑定列表中的项目添加到Items集合,也可以将ItemsSource绑定到包含一组固定对象和绑定集合项目的集合。 在任何一种情况下,最大的问题可能是在数据发生变化时进行更新 – 确保删除/添加正确的项目并正确更新UI。