【问题标题】:Dynamic TabItems c# Wpf动态 TabItems c# Wpf
【发布时间】:2011-04-04 13:33:47
【问题描述】:

我是 WPF 新手,我正在创建一个使用 TabControl 的应用程序。我正在使用 DataTemplateSelector,我的数据源是我从 XML 创建的一个对象,它具有“type”和“categoryID”属性。我根据工作正常的“类型”选择我的数据模板,但我还需要在运行时为每个 categoryID 创建一个 tabitem。我的问题是目前它为每个对象创建一个新的 TabItem。如何根据 categoryID 创建一个新的 tabitem 并将 dataTemplate 放在该选项卡上,如果该选项卡已经创建,请将 DataTemplate 放在该选项卡上而不是创建一个新的。

提前致谢!!

【问题讨论】:

  • 您可以使用 ObservableCollection 类并绑定到 ItemsSource 属性。在将项目添加到集合之前 - 检查集合中是否存在此项目,如果存在 - 不要添加。

标签: c# wpf tabcontrol


【解决方案1】:

我最终使用了带有分组的 CollectionViewSource,然后我将 tabcontrol 数据上下文设置为 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);
    }

【讨论】:

  • 可以查看xaml吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多