我确信我缺少一些简单的东西,但我必须承认,在这一点上我不知所措。
我以编程方式将 TabItems 添加到我的主 TabControl 中,用户选择打开的每个帐户一个。在创建和添加新的 TabItem 之前,我想检查用户是否已经在另一个选项卡中打开了该帐户。我不想最终打开两个相同的选项卡。
这是我最初编写的代码。希望它能让您了解我要完成的工作。
if (tab_main.Items.Contains(accountNumber))
{
tab_main.SelectedIndex = tab_main.Items.IndexOf(accountNumber);
}
else
{
Search s = new Search(queryResults, searchText);
TabItem tab_search = new TabItem();
tab_search.Header = searchString;
tab_search.Name = accountNumber;
tab_search.Content = s;
tab_main.Items.Add(tab_search);
}
当然,这不能正常工作。在 WinForms 中,TabControl 有一个 TabPages 集合,其中包含一个 ContainsKey 方法,我可以使用它来搜索 TabPage 的名称。我不明白 Items.Contains() 方法在寻找什么,因为它只指定一个对象作为参数并且不引用项目的名称!
非常感谢任何和所有帮助。
谢谢!