我有一个RowDetailsTemplate一个DataGrid。在详细信息模板存在的DataGridColumn里面一个文本框。当我想通过单击设置焦点在文本框,第一行被选中。只有第二次点击,我可以选择文本框本身。有没有捕捉到第一个点击事件只是在XAML和手动选择文本的好办法?
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0"/>
<ComboBox Grid.Column="1"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGridTextColumn Header="Phone">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBox Text="{Binding Price}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
此刻,我点击了第一次。从第一次点击进入编辑模式。
利用SelectionUnit
的DataGrid
属性和设定值Cell
这样的:
<DataGrid SelectionUnit="Cell" >
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0"/>
<ComboBox Grid.Column="1"/>
</Grid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
YourStuff here
</DataGrid>