无法从C#中的ListBox中按名称删除StackPanel

我正在尝试使用以下代码从ListBox中删除项目:

listBox.Items.Remove(stackPanelName);

我没有得到任何错误,但我也没有得到任何明显的结果.

有谁知道我做错了什么?

最佳答案 你可以这样做:

var stackPanelItem = listBox.Items.OfType<FrameworkElement>()
                            .First(x => x.Name == stackPanelName);
listBox.Items.Remove(stackPanelItem);

如果listBox.Items集合中没有具有该名称的项目,则会失败.您可能希望这样做更安全一些:

var stackPanelItem = listBox.Items.OfType<FrameworkElement>()
                            .FirstOrDefault(x => x.Name == stackPanelName);
if (stackPanelItem != null)
{
    listBox.Items.Remove(stackPanelItem);
}
点赞