我正在尝试将WPF标签控件的选定标签项与添加的最后一项同步。
由于没有这样的财产,例如IsSynchedWithLastAddedItem,我试图检测何时添加了一个项目,以便将SelectedItem指向最后添加的项目。
当添加TabItem时,我找不到引发的事件 - 在选项卡控件或其Items上。
我确信它必须存在,所以我希望有人可以帮助我。
答案 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中这样做。