2016-11-01 2 views
1

У меня есть окно с TabControl и четыре TabItem s. И мне нужно изменить фокус на правый textBox при выборе табуляции. Правильно ли это сделать? Я попытался использовать событие TabControl_SelectionChanged, но похоже, что он не работает.Фокус при изменении на TabItem

private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (((TabItem)((TabControl)sender).SelectedItem).Name == "tab2") 
    { 
     UpdateLayout(); 
     textBox2EAN.Focus(); 
    } 
    e.Handled = true; 
} 

Но если я нажму на TAB2 фокуса на CheckBox колонке DataGrids «s.

TabItem: ...

<TabItem Name="tab2" Header="2" Width="50"> 
    <Grid>  
     <DataGrid Name="dataGrid" Margin="1" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3" 
       VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseDoubleClick="dataGrid_MouseDoubleClick" 
       ItemsSource="{Binding RadkyDokladu.radky}" CanUserSortColumns="False" PreviewKeyDown="dataGrid_PreviewKeyDown" 
       AutoGenerateColumns="False" IsReadOnly="True" FontSize="12" SelectionMode="Single" > 
      <DataGrid.Columns> 
       <DataGridCheckBoxColumn Header="" Binding="{Binding ZASKRTNUTO}" Width="auto" /> 
       <DataGridTextColumn Header="Náz" Binding="{Binding Artikl_NAME}" Width="*"/> 
      </DataGrid.Columns> 
     </DataGrid> 
     <TextBox Name="textBox2EAN" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="2" Margin="1" 
       VerticalContentAlignment="Center" /> 
    </Grid> 
</Tabitem> 
+0

ли метод правильно добавлен к Событие TabControl.SelectedIndexChanged? – Poody

+0

Im using '' – Sk1X1

+0

Имеет ли textBox даже фокус, прежде чем он перейдет к флажку? – Poody

ответ

2

Вы можете просто переместить его в XAML и пусть элементы управления внутри TabItem перемещения фокуса, когда они будут готовы:

<TabItem Name="tab2" Header="2" Width="50"> 
    <Grid FocusManager.FocusedElement="{Binding ElementName=textBox2EAN}"> 
     <DataGrid /> 
     <TextBox Name="textBox2EAN" /> 
    </Grid> 
</TabItem> 
+0

Спасибо! Я пробовал это раньше и не работал ... Так что я попробовал еще раз, и это выглядит многообещающе. Еще раз спасибо – Sk1X1

+0

@ Sk1X1, без проблем. Если у вас нет переключения фокуса в коде, тогда он должен работать. – icebat