如何在动态 TabControl 中通过其 header select 一个 TabItem?
How to select a TabItem by its header in a dynamic TabControl?
我有多个 TabItems
的动态 TabControl
。我需要根据其 header 值动态地 select 一个特定的 TabItem
。我已经找到了一种方法 select a TabItem
通过这样的索引,
tabControl.SelectedIndex= 0;
但在这种情况下,我不知道如何通过 header.
找到 TabItem
的索引
我的pseudo-code是这样的:
if(tabControl.Contains(myHeader))
{
tabControl.SelectedItem = myHeader;
}
假设您的选项卡内容是 TabContent
类型 属性 Header
并且您通过 ItemsSource
属性 绑定项目,您可以这个。
tabControl.SelectedItem = TabControl.Items.OfType<TabContent>().SingleOrDefault(ti => ti.Header.Equals(myHeader));
如果您直接将 TabItem
分配给您的 TabControl
,您可以这样做。
tabControl.SelectedItem = tabControl.Items.OfType<TabItem>().SingleOrDefault(ti => ti.Header.Equals(myHeader));
由于两个示例为了方便起见都使用了 Linq,因此请务必使用 using System.Linq;
导入它。 OfType<T>()
方法将过滤特定类型的项目,SingleOrDefault()
将 return 与条件匹配的单个元素或 null
,这意味着没有选择选项卡项目.
我有多个 TabItems
的动态 TabControl
。我需要根据其 header 值动态地 select 一个特定的 TabItem
。我已经找到了一种方法 select a TabItem
通过这样的索引,
tabControl.SelectedIndex= 0;
但在这种情况下,我不知道如何通过 header.
找到TabItem
的索引
我的pseudo-code是这样的:
if(tabControl.Contains(myHeader))
{
tabControl.SelectedItem = myHeader;
}
假设您的选项卡内容是 TabContent
类型 属性 Header
并且您通过 ItemsSource
属性 绑定项目,您可以这个。
tabControl.SelectedItem = TabControl.Items.OfType<TabContent>().SingleOrDefault(ti => ti.Header.Equals(myHeader));
如果您直接将 TabItem
分配给您的 TabControl
,您可以这样做。
tabControl.SelectedItem = tabControl.Items.OfType<TabItem>().SingleOrDefault(ti => ti.Header.Equals(myHeader));
由于两个示例为了方便起见都使用了 Linq,因此请务必使用 using System.Linq;
导入它。 OfType<T>()
方法将过滤特定类型的项目,SingleOrDefault()
将 return 与条件匹配的单个元素或 null
,这意味着没有选择选项卡项目.