回答編集履歴

1

見直しキャンペーン中

2023/07/27 15:44

投稿

TN8001
TN8001

スコア9326

test CHANGED
@@ -1,117 +1,59 @@
1
1
  > DataGridにおいて、特定の列のセルに対してタブフォーカスをさせないようにしたい
2
2
 
3
-
4
-
5
3
  その列が`ReadOnly`でよければズバリな回答がありました。
6
-
7
4
  [wpf - DataGrid tab navigation skip column - Stack Overflow](https://stackoverflow.com/questions/7575636/datagrid-tab-navigation-skip-column)
8
-
9
-
10
5
 
11
6
  でもおそらく`ReadOnly`じゃなくても飛ばしたいのであろうかと思います。
12
7
 
13
-
14
-
15
8
  `DataGridCell`とその中身(`CheckBox`)両方を`IsTabStop="False"`としたところ想定の動作となりました。
16
9
 
17
-
18
-
19
- ```xaml
10
+ ```xml
20
-
21
11
  <Window
22
-
23
12
  x:Class="Questions345202.MainWindow"
24
-
25
13
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
26
-
27
14
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
28
-
29
15
  Width="800"
30
-
31
16
  Height="450">
32
-
33
17
  <Grid>
34
-
35
18
  <DataGrid Name="dataGrid" AutoGenerateColumns="False">
36
-
37
19
  <DataGrid.Resources>
38
-
39
20
  <Style TargetType="DataGridCell">
40
-
41
21
  <Style.Triggers>
42
-
43
22
  <Trigger Property="IsReadOnly" Value="True">
44
-
45
23
  <Setter Property="IsTabStop" Value="False" />
46
-
47
24
  </Trigger>
48
-
49
25
  </Style.Triggers>
50
-
51
26
  </Style>
52
-
53
27
  </DataGrid.Resources>
54
-
55
28
  <DataGrid.Columns>
56
-
57
29
  <DataGridTextColumn Binding="{Binding Name}" Header="Name" />
58
-
59
30
  <DataGridTextColumn Binding="{Binding Age}" Header="Age" />
60
31
 
61
-
62
-
63
32
  <!-- ReadOnlyでいい場合 -->
64
-
65
33
  <DataGridCheckBoxColumn
66
-
67
34
  Binding="{Binding AuthMember}"
68
-
69
35
  Header="AuthMember"
70
-
71
36
  IsReadOnly="True" />
72
37
 
73
-
74
-
75
38
  <!-- 編集はしたい場合(Resourcesの記述は不要) -->
76
-
77
39
  <DataGridTemplateColumn Header="AuthMember">
78
-
79
40
  <DataGridTemplateColumn.CellStyle>
80
-
81
41
  <Style TargetType="{x:Type DataGridCell}">
82
-
83
42
  <Setter Property="IsTabStop" Value="False" />
84
-
85
43
  </Style>
86
-
87
44
  </DataGridTemplateColumn.CellStyle>
88
-
89
45
  <DataGridTemplateColumn.CellTemplate>
90
-
91
46
  <DataTemplate>
92
-
93
47
  <CheckBox
94
-
95
48
  HorizontalAlignment="Center"
96
-
97
49
  VerticalAlignment="Center"
98
-
99
50
  IsChecked="{Binding AuthMember, UpdateSourceTrigger=PropertyChanged}"
100
-
101
51
  IsTabStop="False" />
102
-
103
52
  </DataTemplate>
104
-
105
53
  </DataGridTemplateColumn.CellTemplate>
106
-
107
54
  </DataGridTemplateColumn>
108
-
109
55
  </DataGrid.Columns>
110
-
111
56
  </DataGrid>
112
-
113
57
  </Grid>
114
-
115
58
  </Window>
116
-
117
59
  ```