当用户按 Alt+X 时,如何在 DataGridTextColumn 的插入符号位置插入文本?
这是数据网格
<DataGrid x:Name="TheGrid" SelectionUnit="Cell" ItemsSource="{Binding Soruce}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataGrid.Columns>
</DataGrid>
我尝试制作自己的 CellEditingTemplate 和 CellTemplate。但是当我这样做时,它会破坏网格的 Tab 功能。我必须加倍或三倍制表符才能编辑下一个单元格。
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" KeyDown="TextBox_KeyDown"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Value}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
后面的代码。您不能将文本直接插入到数据绑定模型中,因为您必须知道插入符号的位置。
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
//Insert text at caret position
}