Tabitem.focus фокусируется только на заголовке tabitem - PullRequest
0 голосов
/ 01 июня 2010

Эй. У меня есть tabcontrol, который связан с наблюдаемой коллекцией.

Я пытался сделать

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

И похоже, что он фокусируется на tabitem, но только на btn в заголовке tabitem, а не на контенте. содержимое tabitem - это еще один пользовательский контроль.

Как изменить фокус на контент, чтобы фактически была выбрана вкладка, а не только заголовок

Я знаю о tabcontrol.selecteditem, но я не совсем уверен, как бы я реализовал это, поскольку observablecollection на самом деле является классом, который я назвал ObservableTabCollection, который просто реализует наблюдаемый набор.

Ответы [ 2 ]

0 голосов
/ 01 июня 2010

Мое решение состояло в том, чтобы просто создать метод на основе наблюдаемой коллекции, который бы связывал управление вкладками с наблюдаемой коллекцией

public TabControl AssociatedTabControl;

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

, а затем внутри вызова метода

if (AssociatedTabControl != null) AssociatedTabControl.SelectedItem = tabitem;
0 голосов
/ 01 июня 2010

Привязать TabControl.SelectedItem в двух направлениях к определенному TabItem из вашей ObservableTabCollection. Затем вы можете установить привязку к любому элементу, который вы извлекаете из ObservableTabCollection, чтобы сделать эту вкладку показанной вкладкой.

...