回答編集履歴
1
見直しキャンペーン中
answer
CHANGED
@@ -1,59 +1,59 @@
|
|
1
|
-
> DataGridにおいて、特定の列のセルに対してタブフォーカスをさせないようにしたい
|
2
|
-
|
3
|
-
その列が`ReadOnly`でよければズバリな回答がありました。
|
4
|
-
[wpf - DataGrid tab navigation skip column - Stack Overflow](https://stackoverflow.com/questions/7575636/datagrid-tab-navigation-skip-column)
|
5
|
-
|
6
|
-
でもおそらく`ReadOnly`じゃなくても飛ばしたいのであろうかと思います。
|
7
|
-
|
8
|
-
`DataGridCell`とその中身(`CheckBox`)両方を`IsTabStop="False"`としたところ想定の動作となりました。
|
9
|
-
|
10
|
-
```
|
11
|
-
<Window
|
12
|
-
x:Class="Questions345202.MainWindow"
|
13
|
-
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
14
|
-
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
15
|
-
Width="800"
|
16
|
-
Height="450">
|
17
|
-
<Grid>
|
18
|
-
<DataGrid Name="dataGrid" AutoGenerateColumns="False">
|
19
|
-
<DataGrid.Resources>
|
20
|
-
<Style TargetType="DataGridCell">
|
21
|
-
<Style.Triggers>
|
22
|
-
<Trigger Property="IsReadOnly" Value="True">
|
23
|
-
<Setter Property="IsTabStop" Value="False" />
|
24
|
-
</Trigger>
|
25
|
-
</Style.Triggers>
|
26
|
-
</Style>
|
27
|
-
</DataGrid.Resources>
|
28
|
-
<DataGrid.Columns>
|
29
|
-
<DataGridTextColumn Binding="{Binding Name}" Header="Name" />
|
30
|
-
<DataGridTextColumn Binding="{Binding Age}" Header="Age" />
|
31
|
-
|
32
|
-
<!-- ReadOnlyでいい場合 -->
|
33
|
-
<DataGridCheckBoxColumn
|
34
|
-
Binding="{Binding AuthMember}"
|
35
|
-
Header="AuthMember"
|
36
|
-
IsReadOnly="True" />
|
37
|
-
|
38
|
-
<!-- 編集はしたい場合(Resourcesの記述は不要) -->
|
39
|
-
<DataGridTemplateColumn Header="AuthMember">
|
40
|
-
<DataGridTemplateColumn.CellStyle>
|
41
|
-
<Style TargetType="{x:Type DataGridCell}">
|
42
|
-
<Setter Property="IsTabStop" Value="False" />
|
43
|
-
</Style>
|
44
|
-
</DataGridTemplateColumn.CellStyle>
|
45
|
-
<DataGridTemplateColumn.CellTemplate>
|
46
|
-
<DataTemplate>
|
47
|
-
<CheckBox
|
48
|
-
HorizontalAlignment="Center"
|
49
|
-
VerticalAlignment="Center"
|
50
|
-
IsChecked="{Binding AuthMember, UpdateSourceTrigger=PropertyChanged}"
|
51
|
-
IsTabStop="False" />
|
52
|
-
</DataTemplate>
|
53
|
-
</DataGridTemplateColumn.CellTemplate>
|
54
|
-
</DataGridTemplateColumn>
|
55
|
-
</DataGrid.Columns>
|
56
|
-
</DataGrid>
|
57
|
-
</Grid>
|
58
|
-
</Window>
|
1
|
+
> DataGridにおいて、特定の列のセルに対してタブフォーカスをさせないようにしたい
|
2
|
+
|
3
|
+
その列が`ReadOnly`でよければズバリな回答がありました。
|
4
|
+
[wpf - DataGrid tab navigation skip column - Stack Overflow](https://stackoverflow.com/questions/7575636/datagrid-tab-navigation-skip-column)
|
5
|
+
|
6
|
+
でもおそらく`ReadOnly`じゃなくても飛ばしたいのであろうかと思います。
|
7
|
+
|
8
|
+
`DataGridCell`とその中身(`CheckBox`)両方を`IsTabStop="False"`としたところ想定の動作となりました。
|
9
|
+
|
10
|
+
```xml
|
11
|
+
<Window
|
12
|
+
x:Class="Questions345202.MainWindow"
|
13
|
+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
14
|
+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
15
|
+
Width="800"
|
16
|
+
Height="450">
|
17
|
+
<Grid>
|
18
|
+
<DataGrid Name="dataGrid" AutoGenerateColumns="False">
|
19
|
+
<DataGrid.Resources>
|
20
|
+
<Style TargetType="DataGridCell">
|
21
|
+
<Style.Triggers>
|
22
|
+
<Trigger Property="IsReadOnly" Value="True">
|
23
|
+
<Setter Property="IsTabStop" Value="False" />
|
24
|
+
</Trigger>
|
25
|
+
</Style.Triggers>
|
26
|
+
</Style>
|
27
|
+
</DataGrid.Resources>
|
28
|
+
<DataGrid.Columns>
|
29
|
+
<DataGridTextColumn Binding="{Binding Name}" Header="Name" />
|
30
|
+
<DataGridTextColumn Binding="{Binding Age}" Header="Age" />
|
31
|
+
|
32
|
+
<!-- ReadOnlyでいい場合 -->
|
33
|
+
<DataGridCheckBoxColumn
|
34
|
+
Binding="{Binding AuthMember}"
|
35
|
+
Header="AuthMember"
|
36
|
+
IsReadOnly="True" />
|
37
|
+
|
38
|
+
<!-- 編集はしたい場合(Resourcesの記述は不要) -->
|
39
|
+
<DataGridTemplateColumn Header="AuthMember">
|
40
|
+
<DataGridTemplateColumn.CellStyle>
|
41
|
+
<Style TargetType="{x:Type DataGridCell}">
|
42
|
+
<Setter Property="IsTabStop" Value="False" />
|
43
|
+
</Style>
|
44
|
+
</DataGridTemplateColumn.CellStyle>
|
45
|
+
<DataGridTemplateColumn.CellTemplate>
|
46
|
+
<DataTemplate>
|
47
|
+
<CheckBox
|
48
|
+
HorizontalAlignment="Center"
|
49
|
+
VerticalAlignment="Center"
|
50
|
+
IsChecked="{Binding AuthMember, UpdateSourceTrigger=PropertyChanged}"
|
51
|
+
IsTabStop="False" />
|
52
|
+
</DataTemplate>
|
53
|
+
</DataGridTemplateColumn.CellTemplate>
|
54
|
+
</DataGridTemplateColumn>
|
55
|
+
</DataGrid.Columns>
|
56
|
+
</DataGrid>
|
57
|
+
</Grid>
|
58
|
+
</Window>
|
59
59
|
```
|