Tabitem.focus仅关注tabitem标题

时间:2010-06-01 13:13:35

标签: c# silverlight observablecollection tabitem

嘿。我有一个tabcontrol绑定到一个可观察的集合。

我已经尝试过了

var tabitem = (TabItem)this.SingleOrDefault(ti => ti.Name == tabname);
    tabitem.Focus();
    ((UserControl)tabitem.Content).Focus();

看起来它似乎专注于tabitem,但仅限于tabitem标题中的btn,而不是内容。 tabitem内容是另一个用户控件。

如何将焦点更改为内容,以便实际选择标签而不仅仅是tabheader

我知道tabcontrol.selecteditem,但是我并不确定如何实现它,因为observablecollection实际上是一个我称之为ObservableTabCollection的类,它只实现了可观察的集合。

2 个答案:

答案 0 :(得分:0)

TabControl.SelectedItem双向绑定到ObservableTabCollection中的特定TabItem。然后,您可以将绑定设置为从ObservableTabCollection中提取的任何项目,以使该选项卡成为显示的选项卡。

答案 1 :(得分:0)

我的解决方案是简单地在observabletabcollection上创建一个方法,该方法将tabcontrol与observabletabcollection相关联

public TabControl AssociatedTabControl;

internal void BindToTabControl(TabControl TabCtrl)
        {
            AssociatedTabControl = TabCtrl;
        }

然后在方法调用

if (AssociatedTabControl != null) AssociatedTabControl.SelectedItem = tabitem;