嘿。我有一个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的类,它只实现了可观察的集合。
答案 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;