我试图将WPF选项卡控件的选定选项卡项目与添加的最后一项同步。检测何时将选项卡项目添加到WPF选项卡控件
由于不存在例如IsSynchedWithLastAddedItem,我试图检测何时添加一个项目,以便在最后添加的SelectedItem点。
当添加TabItem时,我无法找到引发的事件 - 无论是在选项卡控件或其Items上。
我相信这样的东西一定存在,所以我希望有人能帮助我。
我试图将WPF选项卡控件的选定选项卡项目与添加的最后一项同步。检测何时将选项卡项目添加到WPF选项卡控件
由于不存在例如IsSynchedWithLastAddedItem,我试图检测何时添加一个项目,以便在最后添加的SelectedItem点。
当添加TabItem时,我无法找到引发的事件 - 无论是在选项卡控件或其Items上。
我相信这样的东西一定存在,所以我希望有人能帮助我。
var view=CollectionViewSource.GetDefaultView(m_tabControl.ItemsSource);
view.CollectionChanged+=(o,e)=>{/*Here your code*/};
如果您直接使用Items-collection,则同样的技巧也可以使用。获取此集合的默认CollectionViewSource。
var view=CollectionViewSource.GetDefaultView(m_tabControl.Items);
view.CollectionChanged+=(o,e)=>{/*Here your code*/};
由于Timores写道,对于m_tabControl.Items属性,你可以直接连接的处理程序。对于大多数ItemsSource参考也是如此,但是您必须检查自己是否有INotifyCollectionChanged接口。
我还没有测试过它。如果它不起作用,请发表评论。
Items集合的类型为ItemCollection,它从实现INotifyCollectionChanged的CollectionView派生。因此,您可以收听CollectionChanged并了解何时添加项目。
虽然不知道如何在XAML中做到这一点。
谢谢,第二个选项工作完美。 第一个只会在ItemsSource被设置后才能工作,所以你不能在视图的构造函数中使用它。 原因是在那一点上ItemsSource仍然是空的,因此默认视图也是。 – 2010-09-04 18:41:03
第二个也适用于我。 – torpederos 2013-02-19 06:58:18