如何根据名称或标题删除标签项

时间:2013-08-16 17:14:20

标签: c# wpf tabcontrol tabitem

这个问题类似于我今天早些时候提出的this question。不同的是,现在我想删除由nameheader引用的标签项。我能否以类似于我在这个问题上得到的答案的方式来呼叫Remove

这是我尝试过的:

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

我可以使用this之类的内容吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

我对从wpf中删除知之甚少,但是这段代码比你发布的代码更有效。删除是一种方法,您不能为其赋值,因此您必须隔离要删除的项,检查以确保它不为空,然后将该对象传递给Remove方法。 / p>

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 the ItemsSource,因为它详细说明了检查项目是否可以删除,以及即使Remove方法可用于该控件。