我確信有一些我很想念的東西很簡單,但我必須承認,在這一點上我感到茫然。WPF/C#:如何在TabControl中引用TabItems?
我以編程方式將TabItems添加到我的主TabControl,用戶選擇打開的每個帳戶的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()方法正在查找的內容,因爲它只將對象指定爲參數,並且不引用項目的名稱!
任何和所有的幫助,非常感謝。
謝謝!
雷,我冒昧地編輯'Cast'。 TabControl.Items是'IEnumerable',但不是'IEnumerable',因此它不直接支持LINQ Where操作符。 –
itowlson
2010-02-17 00:47:05
感謝您的回覆!在編輯之前,它不起作用,我最終提出了另一個類似的解決方案。當然讓我以正確的方向思考!我發現了一個非常類似的解決方案,但也有一個後續問題,如果有人有時間幫助,我會發布另一個答案! – 2010-02-17 01:18:33