0
最初の列セルがテキストボックスにバインドされるデータグリッドがあります。バインドされたテキストボックスにフォーカスがあるときに、データグリッドの行全体の内容を取得したいと思います。 GotFocus
でイベントをトリガーすることはできますが、DataGridで何も選択されていないため、現在のところどの行が「編集中」であるのかわかりません。何か案は?DatagridTemplateColumn.CellTemplateがTextBoxの場合、DataGrid行を取得する方法
<DataGrid x:Name="buildDataGrid"
ItemsSource="{Binding BuildData}"
AutoGenerateColumns="False"
CanUserReorderColumns="False"
CanUserSortColumns="False"
CanUserResizeRows="False"
SelectionUnit="CellOrRowHeader"
CanUserAddRows="False"
CanUserDeleteRows="False"
Margin="0,0,10,0">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Serial Number"
MinWidth="200"
Width="*"
x:Name="componentSerialNumberDataGridTemplate">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding SerialNumber, UpdateSourceTrigger=PropertyChanged}"
x:Name="snoTextBox"
BorderThickness="0"
Focusable="True"
GotFocus="snoTextBox_GotFocus">
<TextBox.InputBindings>
<KeyBinding Command="{Binding SerialNumberEnterCommand}"
CommandParameter="{Binding Path=Text, ElementName=snoTextBox}"
Key="Return"/>
</TextBox.InputBindings>
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Part Number"
Binding="{Binding ComponentNumber}"
CanUserReorder="False"
MinWidth="200"
IsReadOnly="True"
CanUserResize="True" />
<DataGridTextColumn Header="Description"
Binding="{Binding ComponentName}"
CanUserReorder="False"
Width="Auto"
MinWidth="400"
IsReadOnly="True"
CanUserResize="True" />
</DataGrid.Columns>
</DataGrid>
これを試しましたか? http://blog.scottlogic.com/2008/12/02/wpf-datagrid-detecting-clicked-cell-and-row.html –
ありがとうございました。うまくいきました。ソリューションを投稿しました。 – Steven