检测选项卡项何时添加到WPF选项卡控件

时间:2010-09-03 22:06:13

标签: c# wpf

我正在尝试将WPF标签控件的选定标签项与添加的最后一项同步。

由于没有这样的财产,例如IsSynchedWithLastAddedItem,我试图检测何时添加了一个项目,以便将SelectedItem指向最后添加的项目。

当添加TabItem时,我找不到引发的事件 - 在选项卡控件或其Items上。

我确信它必须存在,所以我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:10)

var view=CollectionViewSource.GetDefaultView(m_tabControl.ItemsSource);
view.CollectionChanged+=(o,e)=>{/*Here your code*/};

如果直接使用Items集合,相同的技术也可以使用。获取此集合的默认CollectionViewSource。

var view=CollectionViewSource.GetDefaultView(m_tabControl.Items);
view.CollectionChanged+=(o,e)=>{/*Here your code*/};

正如 Timores 所写,对于m_tabControl.Items-property,您可以直接附加处理程序。对于大多数ItemsSource引用也是如此,但是你必须检查自己的INotifyCollectionChanged接口。

我还没有测试过。如果它不起作用,请发表评论。

答案 1 :(得分:0)

Items集合的类型为ItemCollection,它派生自实现INotifyCollectionChanged的CollectionView。因此,您可以收听CollectionChanged并了解何时添加项目。

不过,不知道如何在XAML中这样做。