使用数据绑定获取TabItem的索引

时间:2012-02-14 05:13:49

标签: wpf binding

我绑定了TabControl的ItemsSource,当我添加新的TabItem时,它是可见的但未被选中。我想更改TabControl的SelectedIndex,但我不知道如何从最近创建的TabItem获取此索引。
请帮助。

5 个答案:

答案 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;

SelectedIndexTabControl的公共(获取和设置)属性。详细了解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;