У меня есть TabControl, который привязан к модели представленияWPF TabBarControl Настройка фокуса на элемент при закладке изменения
<TabControl
ItemsSource="{Binding Path=ViewModelCollection}" >
<TabControl.ItemContainerStyle>
<Style
TargetType="TabItem"
BasedOn="{StaticResource {x:Type TabItem}}">
<Setter
Property="Header"
Value="{Binding Title}" />
<Setter
Property="Content"
Value="{Binding}" />
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
Каждая вкладка просто содержит View Model Item. Я использую шаблон данных для его отображения.
<!-- View Model Template -->
<DataTemplate
DataType="{x:Type local:ViewModelItem}">
<DockPanel>
<TextBox Text="I want this to have the focus"/>
</DockPanel>
</DataTemplate>
Когда текущая вкладка изменяется я хочу фокус быть на текстовом поле (это простой пример, в моем рабочем коде у меня есть DataGrid) в шаблоне данных. как это сделать?
Настройка фокуса в коде или XAML? – Timores
было бы неплохо сделать это в xaml, количество вкладок динамическое. Установка его в коде, означала бы траление визуального дерева, ищущего текстовое поле. Было бы полезно общее решение о том, как установить элемент, сфокусированный на основе шаблона данных, в сочетании с тем, как установить фокус на панели вкладок. Но я не против использования кода. даже исходя из панели вкладок, поэтому мне не пришлось помещать его в код позади. –