WPF / C#:如何在TabControl中引用TabItems?
作者:互联网
我确信有一些我想念的简单,但我必须承认,此时我不知所措.
我以编程方式将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有一个带有ContainsKey方法的TabPages集合,我可以用它来搜索TabPage的名称.我没有得到Items.Contains()方法正在寻找的东西,因为它只指定一个对象作为参数,并且不引用该项目的名称!
非常感谢任何和所有的帮助.
谢谢!
解决方法:
Contains()方法正在寻找您传递您正在寻找的实际TabItem,因此它不会帮助您.但这会奏效:
var matchingItem =
tab_main.Items.Cast<TabItem>()
.Where(item => item.Name == accountNumber)
.FirstOrDefault();
if(matchingItem!=null)
tab_main.SelectedItem = matchingItem;
else
...
标签:c,wpf,tabcontrol,tabitem 来源: https://codeday.me/bug/20190722/1498419.html