У меня есть таблица данных с несколькими столбцами.Теперь обычно пользователь может нажимать TAB для переключения между элементами управления в ячейках DataGrid.Ячейки сетки данных были установлены в IsTabStop = false, поэтому он пропускает фокусировку на самой ячейке и просто проваливается до тех пор, пока фокус не будет отдан фактическому элементу управления.
Кажется, что это НЕ РАБОТАЕТ, если пользователь нажимает Enterпотому что они хотят работать в том же столбце.DataGrid передаст фокус следующей ячейке в COLUMN, НО также будет игнорировать настройку IsTabStop, поэтому он просто фокусирует внимание на самой ячейке, а не на элементе управления внутри.
Любые идеи, как это исправить.
Краткий пример
<DataGrid AutoGenerateColumns="False" Name="grid1" >
<DataGrid.Resources>
<Style TargetType="{x:Type Border}" x:Key="coloredBorder">
<Setter Property="Background" Value="Yellow"/>
</Style>
<Style TargetType="DataGridCell">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding A, Mode=OneWay}" Header="A"/>
<DataGridTemplateColumn Header="B">
<DataGridTemplateColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Border BorderBrush="Black" BorderThickness="0,0,1,0" Width="20" Height="20" Style="{DynamicResource coloredBorder}"/>
<ComboBox Grid.Column="1" SelectedItem="{Binding A, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding MenuItems, ElementName=window}"></ComboBox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Также я добавил пример приложения WPF для этого здесь .Чтобы воспроизвести, нажмите на один из выпадающих списков, чтобы сосредоточиться.На вкладке Pres вы увидите, что следующее поле со списком фокусируется нормально.Если бы я добавил более одного столбца со списком, поле со списком справа получило бы фокус.
НО, если вы нажмете ввод, фокус перейдет к ячейке ниже, но затем не пропустит ячейку и не перейдетдля содержимого клетки.Вместо ячейки подсвечивается.Вот так:
