1

这个问题类似于我今天早些时候提出的这个问题。不同的是,现在我想删除它的name或引用的选项卡项header。我可以Remove用类似于我在这个问题上得到的答案的方式打电话吗?

这是我尝试过的:

tabControl.Items.Remove = tabControl.Items //Changes tab according to TreeView
                        .OfType<TabItem>().SingleOrDefault(n => n.Name == stringValue);

我可以使用这样的东西?如果是这样,怎么做?

4

1 回答 1

1

我不太了解从 wpf 中删除,但是此代码比您发布的代码更有可能起作用。Remove 是一种方法,您不能为其分配值,因此您必须隔离要删除的项目,检查以确保它不为 null,然后将对象传递给Remove方法。

var tabToDelete = tabControl.Items.OfType<TabItem>().SingleOrDefault(n => n.Name == stringValue);
if (tabToDelete != null) // Since you chose to use SingleOrDefault, we have to check to make sure it isn't null before we try to remove it.
tabControl.Items.Remove(tabToDelete);

但是,我强烈建议您查看WPF - Best way to remove an item from ItemsSource,因为它详细介绍了检查是否可以删除该项目,即使该控件可以使用 Remove 方法。

于 2013-08-16T17:47:05.213 回答