![](/img/trans.png)
[英]How to add custom-control-derived TabItem to TabControl in WPF?
[英]Changing value of control in TabItem makes TabControl change index. How?
我在WPF项目中有一个TabControl,其中包含七个TabItem。
在一个TabItem( TabA )中,我有一个ComboBox绑定到项目列表。 选定的项目绑定到我背后的代码中的属性。 这很好,我可以完美地更改属性。
在另一个TabItem( TabB )中,我可以用另一种方式更改相同的属性。 因此,组合框将选择新值。
问题是,当在塔巴组合框改变它的SelectedItem由于物业从塔布改变-在OnSelectionChanged
事件莫名其妙地冒泡到TabControl,并引发TabControlSelectionChanged
事件-即使什么都没有用的标签发生在所有。
当我查看TabControlSelectionChanged
事件的参数时
var selectedTab = e.AddedItems[0] as TabItem;
selectedTab为空。
为什么会发生这种情况,如何防止这种情况发生?
Evil Str回答了这个问题,但是在他领导之后,我发现了另一种方法。
在ComboBox SelectionChanged
事件中,只需防止该事件进一步冒泡。
private void ComboBoxOnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
// whatever code you want in here to handle the change of item
e.Handled = true;
}
发生这种情况是因为TabControl.SelectionChanged与ComboBox.SelectionChanged是同一事件。
我已经遇到过这个问题了。 为了防止这种情况发生,我使用了以下代码:
private void myTab_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl) //if this event fired from TabControl
{
if (tabItemName.IsSelected)
{
//Do what you need here.
}
}
}
您可以根据需要修改此代码。 我希望这可以帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.