質問編集履歴

3

意図的に内容を抹消する行為にあたるため

2021/09/13 11:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,205 @@
1
+ ### 前提・実現したいこと
2
+
3
+ 実現したいこと
4
+
1
- まことにすみません事情により削除することとなりました
5
+ 列3の入力確定した時点で 列4、5の値を参照して
6
+
2
-
7
+  入力値が範囲内ならOK、範囲外ならエラーとして
8
+
3
-
9
+  そのセルからフォーカス移動をさせない
10
+
4
-
11
+ 出来ていること
12
+
13
+  マウスで選択した場合、選択したセルの値と
14
+
15
+  列4,5の値の取得まで
16
+
17
+ 知りたいこと
18
+
19
+ 上記の状態からセルのマウス選択ではなく、セルの入力完了で連携をさせたいのですが
20
+
21
+ その方法がわかりませんでした。
22
+
23
+ アドバイス等よろしくお願いします。
24
+
25
+ ### 現在のソースコード
26
+
27
+ MainWindow.xaml
28
+
29
+ ```
30
+
31
+ <Window x:Class="WPFGetDataGridCell.MainWindow"
32
+
33
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
34
+
35
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
36
+
37
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
38
+
39
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
40
+
41
+ xmlns:local="clr-namespace:WPFGetDataGridCell"
42
+
43
+ mc:Ignorable="d"
44
+
45
+ Title="MainWindow" Height="300" Width="600" >
46
+
47
+ <Grid>
48
+
49
+ <DataGrid
50
+
51
+ Name="dataGrid"
52
+
53
+ ItemsSource="{Binding}"
54
+
55
+ AutoGenerateColumns="False"
56
+
57
+ IsReadOnly="True"
58
+
59
+ SelectionMode="Single"
60
+
61
+ SelectionUnit="Cell"
62
+
63
+ MouseLeftButtonDown="DataGrid_MouseLeftButtonDown"/>
64
+
65
+ </Grid>
66
+
67
+ </Window>
68
+
69
+ ```
70
+
71
+ MainWindow.xaml.cs
72
+
73
+ ```
74
+
75
+ using System;
76
+
77
+ using System.Collections.Generic;
78
+
79
+ using System.Data;
80
+
81
+ using System.Linq;
82
+
83
+ using System.Text;
84
+
85
+ using System.Threading.Tasks;
86
+
87
+ using System.Windows;
88
+
89
+ using System.Windows.Controls;
90
+
91
+ using System.Windows.Data;
92
+
93
+ using System.Windows.Documents;
94
+
95
+ using System.Windows.Input;
96
+
97
+ using System.Windows.Media;
98
+
99
+ using System.Windows.Media.Imaging;
100
+
101
+ using System.Windows.Navigation;
102
+
103
+ using System.Windows.Shapes;
104
+
105
+ namespace WPFGetDataGridCell
106
+
5
-
107
+ {
108
+
109
+ public partial class MainWindow : Window
110
+
111
+ {
112
+
113
+ public MainWindow()
114
+
115
+ {
116
+
117
+ InitializeComponent();
118
+
119
+ // データグリッドに5列設定
120
+
121
+ for (int i = 0; i < 5; ++i)
122
+
123
+ {
124
+
125
+ //追加する列はテキストカラムとしてます。
126
+
127
+ var column = new DataGridTextColumn();
128
+
129
+ column.Header = $"{i}";
130
+
131
+ column.Binding = new Binding($"[{i}]");
132
+
133
+ dataGrid.Columns.Add(column);
134
+
135
+ }
136
+
137
+ // データグリッドに3行設定
138
+
139
+ var row1 = new string[] { "あああ", "AAAAAA", "0", "0", "90" };
140
+
141
+ var row2 = new string[] { "いいい", "BBBBBB", "0", "0", "91" };
142
+
143
+ var row3 = new string[] { "ううう", "CCCCCC", "0", "0", "92" };
144
+
145
+ var rows = new List<object>();
146
+
147
+ rows.Add(row1);
148
+
149
+ rows.Add(row2);
150
+
151
+ rows.Add(row3);
152
+
153
+ dataGrid.ItemsSource = rows;
154
+
155
+ }
156
+
157
+ private void DataGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
158
+
159
+ {
160
+
161
+ var dataGrid = sender as DataGrid;
162
+
163
+ // 行位置を取得します。
164
+
165
+ var rowIndex = dataGrid.Items.IndexOf(dataGrid.CurrentItem);
166
+
167
+ // 列位置を取得します。
168
+
169
+ var columnIndex = dataGrid.CurrentCell.Column.DisplayIndex;
170
+
171
+
172
+
173
+ var row = dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex) as DataGridRow;
174
+
175
+ var cell = dataGrid.Columns[columnIndex].GetCellContent(row);
176
+
177
+ var cellMin = dataGrid.Columns[3].GetCellContent(row);
178
+
179
+ var cellMax = dataGrid.Columns[4].GetCellContent(row);
180
+
181
+ // セルのテキストブロックキャスト
182
+
183
+ var textBlock = cell as TextBlock;
184
+
185
+ var textBlockMin = cellMin as TextBlock;
186
+
187
+ var textBlockMax = cellMax as TextBlock;
188
+
189
+ //全セル値の表示
190
+
191
+ MessageBox.Show("入力値="+ textBlock.Text +" 最小値="+ textBlockMin.Text + " 最大値=" + textBlockMax.Text);
192
+
193
+ }
194
+
195
+ }
196
+
197
+ }
198
+
199
+ ```
200
+
201
+ ### 補足情報(FW/ツールのバージョンなど)
202
+
203
+ 環境: Win10 、VS2019、C#
204
+
205
+ フレームワーク:なし

2

都合により削除することとなりました。

2021/09/13 11:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,225 +1,5 @@
1
- ### 前提・実現したいこと
2
-
3
- 実現したいこと
4
-
5
- 列3の入力確定した時点で 列4、5の値を参照して
1
+ まことにすみません事情により削除することとなりました
6
-
7
-  入力値が範囲内ならOK、範囲外ならエラーとして
8
-
9
-  そのセルからフォーカス移動をさせない
10
2
 
11
3
 
12
4
 
13
- 出来ていること
14
-
15
-  マウスで選択した場合、選択したセルの値と
16
-
17
-  列4,5の値の取得まで
18
-
19
-
20
-
21
- 知りたいこと
22
-
23
- 上記の状態からセルのマウス選択ではなく、セルの入力完了で連携をさせたいのですが
24
-
25
- その方法がわかりませんでした。
26
-
27
-
28
-
29
- アドバイス等よろしくお願いします。
30
-
31
-
32
-
33
- ### 現在のソースコード
34
-
35
-
36
-
37
- MainWindow.xaml
38
-
39
- ```
40
-
41
- <Window x:Class="WPFGetDataGridCell.MainWindow"
42
-
43
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
44
-
45
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
46
-
47
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
48
-
49
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
50
-
51
- xmlns:local="clr-namespace:WPFGetDataGridCell"
52
-
53
- mc:Ignorable="d"
54
-
55
- Title="MainWindow" Height="300" Width="600" >
56
-
57
- <Grid>
58
-
59
- <DataGrid
60
-
61
- Name="dataGrid"
62
-
63
- ItemsSource="{Binding}"
64
-
65
- AutoGenerateColumns="False"
66
-
67
- IsReadOnly="True"
68
-
69
- SelectionMode="Single"
70
-
71
- SelectionUnit="Cell"
72
-
73
- MouseLeftButtonDown="DataGrid_MouseLeftButtonDown"/>
74
-
75
- </Grid>
76
-
77
- </Window>
78
-
79
- ```
80
-
81
-
82
-
83
- MainWindow.xaml.cs
84
-
85
- ```
86
-
87
- using System;
88
-
89
- using System.Collections.Generic;
90
-
91
- using System.Data;
92
-
93
- using System.Linq;
94
-
95
- using System.Text;
96
-
97
- using System.Threading.Tasks;
98
-
99
- using System.Windows;
100
-
101
- using System.Windows.Controls;
102
-
103
- using System.Windows.Data;
104
-
105
- using System.Windows.Documents;
106
-
107
- using System.Windows.Input;
108
-
109
- using System.Windows.Media;
110
-
111
- using System.Windows.Media.Imaging;
112
-
113
- using System.Windows.Navigation;
114
-
115
- using System.Windows.Shapes;
116
-
117
-
118
-
119
- namespace WPFGetDataGridCell
120
-
121
- {
5
+
122
-
123
- public partial class MainWindow : Window
124
-
125
- {
126
-
127
- public MainWindow()
128
-
129
- {
130
-
131
- InitializeComponent();
132
-
133
- // データグリッドに5列設定
134
-
135
- for (int i = 0; i < 5; ++i)
136
-
137
- {
138
-
139
- //追加する列はテキストカラムとしてます。
140
-
141
- var column = new DataGridTextColumn();
142
-
143
- column.Header = $"{i}";
144
-
145
- column.Binding = new Binding($"[{i}]");
146
-
147
- dataGrid.Columns.Add(column);
148
-
149
- }
150
-
151
-
152
-
153
- // データグリッドに3行設定
154
-
155
- var row1 = new string[] { "あああ", "AAAAAA", "0", "0", "90" };
156
-
157
- var row2 = new string[] { "いいい", "BBBBBB", "0", "0", "91" };
158
-
159
- var row3 = new string[] { "ううう", "CCCCCC", "0", "0", "92" };
160
-
161
- var rows = new List<object>();
162
-
163
- rows.Add(row1);
164
-
165
- rows.Add(row2);
166
-
167
- rows.Add(row3);
168
-
169
- dataGrid.ItemsSource = rows;
170
-
171
- }
172
-
173
-
174
-
175
- private void DataGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
176
-
177
- {
178
-
179
- var dataGrid = sender as DataGrid;
180
-
181
- // 行位置を取得します。
182
-
183
- var rowIndex = dataGrid.Items.IndexOf(dataGrid.CurrentItem);
184
-
185
- // 列位置を取得します。
186
-
187
- var columnIndex = dataGrid.CurrentCell.Column.DisplayIndex;
188
-
189
-
190
-
191
- var row = dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex) as DataGridRow;
192
-
193
- var cell = dataGrid.Columns[columnIndex].GetCellContent(row);
194
-
195
- var cellMin = dataGrid.Columns[3].GetCellContent(row);
196
-
197
- var cellMax = dataGrid.Columns[4].GetCellContent(row);
198
-
199
-
200
-
201
- // セルのテキストブロックキャスト
202
-
203
- var textBlock = cell as TextBlock;
204
-
205
- var textBlockMin = cellMin as TextBlock;
206
-
207
- var textBlockMax = cellMax as TextBlock;
208
-
209
- //全セル値の表示
210
-
211
- MessageBox.Show("入力値="+ textBlock.Text +" 最小値="+ textBlockMin.Text + " 最大値=" + textBlockMax.Text);
212
-
213
- }
214
-
215
- }
216
-
217
- }
218
-
219
- ```
220
-
221
- ### 補足情報(FW/ツールのバージョンなど)
222
-
223
- 環境: Win10 、VS2019、C#
224
-
225
- フレームワーク:なし

1

不要な太文字になっていた箇所を修正、内容については更新なし

2021/09/09 09:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  実現したいこと
4
4
 
5
-  **ボールドテキスト**列3の入力が確定した時点で 列4、5の値を参照して
5
+ 列3の入力が確定した時点で 列4、5の値を参照して
6
6
 
7
7
   入力値が範囲内ならOK、範囲外ならエラーとして
8
8