我绑定了TabControl的ItemsSource,当我添加新的TabItem时,它是可见的但未被选中。我想更改TabControl的SelectedIndex,但我不知道如何从最近创建的TabItem获取此索引。
请帮助。
答案 0 :(得分:2)
如果您正在使用MVVM那么
<TabControl ItemsSource="{Binding Path=MySource}"
SelectedItem="{Binding Path=MyItem,Mode=Twoway}"
SelectedIndex="{Binding Path=MyIndex,Mode=TwoWay}"></TabControl>
这里有界的属性都在视图模型和触发propertyChnaged(我把它的实现留在你身上)..
因为我们添加了Mode=TwoWay
,如果您在视图模型中向集合添加新项目,则可以将其设置为MySource.Add(<itemInstance>);MyItem=<iteminstance>;
它将在视图中被选中,如果您在视图中选择它,您也将获得SelectedIndex你需要。
答案 1 :(得分:1)
尝试这样做,假设tabControl
是控件ID。
tabControl.SelectedIndex = 0;
SelectedIndex
是TabControl
的公共(获取和设置)属性。详细了解MSDN。
您可以阅读有关数据出价的更多信息@
希望这会成功。
答案 2 :(得分:1)
tabControl.SelectedIndex = tabControl.Items.Count -1;
或者您可以绑定SelectedItem
并将新TabItem
指定为SelecteItem
。
那会更清洁。
答案 3 :(得分:1)
TabItem具有IsSelected依赖项属性。 你刚才这样做
tabItem.IsSelected = true.
我相信会为您选择新标签。
或
您可以为TabItem控件创建ItemContainerStyle,并将IsSelected与TabItems绑定。
<TabControl x:Name="_tabControl" ItemsSource="{Binding .....}">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="IsSelected" Value="{Binding TabSelected}"/>
</Style>
</TabControl.ItemContainerStyle>
答案 4 :(得分:0)
tabControl1.SelectedIndex = 1;
tabControl1.SelectedIndex = tabControl1.items.count-1;