我是WPF的新手,我正在创建一个使用TabControl的应用程序。我正在使用DataTemplateSelector,我的数据源是我从XML创建的对象,它具有属性“type”和“categoryID”。我根据“类型”选择我的数据模板,它工作正常,但我还需要在运行时为每个categoryID创建一个tabitem。我的问题是目前它为每个对象创建一个新的TabItem。如何基于categoryID创建新的tabitem并将dataTemplate放在该选项卡上,如果已创建选项卡,则将DataTemplate放在该选项卡上而不是创建新选项卡。
提前致谢!!
答案 0 :(得分:0)
我最终使用CollectionViewSource进行分组,然后将tabcontrol datacontext设置为CollectionViewSource。
private void PopulateTabControl()
{
DataView = (CollectionViewSource)(this.Resources["DataView"]);
AddGrouping();
tabcontrol.DataContext = DataView;
}
private void AddGrouping()
{
PropertyGroupDescription grouping = new PropertyGroupDescription();
grouping.PropertyName = "categoryID";
DataView.GroupDescriptions.Add(grouping);
}