C# 关闭/删除选项卡项WPF

C# 关闭/删除选项卡项WPF,c#,wpf,xaml,tabs,C#,Wpf,Xaml,Tabs,我在窗口中有一个选项卡控件。这些选项卡都有简单的上下文菜单,允许用户关闭它们。但是,当我单击“关闭”时,什么也没有发生 下面是事件处理程序 void closeTab_Click(object sender, RoutedEventArgs e) { Tabs.Items.Remove((MenuItem)sender); } 我已经四处查看了关于关闭选项卡的内容,但是我发现没有一篇文章详细介绍了如何实际关闭选项卡 新问题: void closeTab_Click(object sen

我在窗口中有一个选项卡控件。这些选项卡都有简单的上下文菜单,允许用户关闭它们。但是,当我单击“关闭”时,什么也没有发生

下面是事件处理程序

void closeTab_Click(object sender, RoutedEventArgs e)
{
    Tabs.Items.Remove((MenuItem)sender);
}
我已经四处查看了关于关闭选项卡的内容,但是我发现没有一篇文章详细介绍了如何实际关闭选项卡

新问题:

void closeTab_Click(object sender, RoutedEventArgs e) 
{ 
    MenuItem close = (MenuItem)sender; 
    Tabs.Items.Remove(Convert.ToInt32(close.Name.Remove(0,3))); 
} 
上下文菜单项的名称如下:

Name = "Tab" + Tabs.Items.Count.ToString(), 

它仍然什么也不做

菜单项不是选项卡。您无法将其从
选项卡控件中删除。您需要对
菜单项所属选项卡的引用。这可以通过多种方式实现


我看到您在那里尝试了一些相当粗糙的名称和字符串操作,这里有一个更干净的方法,不需要任何这些:

var target = (FrameworkElement)sender;
while (target is ContextMenu == false)
    target = (FrameworkElement)target.Parent;
var tabItem = (target as ContextMenu).PlacementTarget;
Tabs.Items.Remove(tabItem);

这将获取父级,直到它找到
上下文菜单
,并从
PlacementTarget
获取
选项卡项

我在想什么!?!?我怎么会错过呢。我以为上面写的是TabItem。DUURRR@Luke:如果您需要帮助获取账单,请告诉我。好的。。。现在我有一个真正的问题。我真的需要更多地考虑这些事情。我想我知道问题所在,我已经解决了。无法仅使用索引从items集合中删除。。。哦,是的,我能。RemoveAt()是我想要的。什么是“标签”?找不到班级。