【发布时间】:2014-07-12 12:28:43
【问题描述】:
假设我有一个 DataGrid。假设所有列都是 TemplateColumns。当任何单元格获得焦点时,我希望它进入 EditMode。
到目前为止我所尝试的:
我为 DataGridCell 创建了如下样式:
<Style TargetType="{x:Type DataGridCell}">
<EventSetter Event="GotFocus" Handler="DataGridCell_GotFocus" />
</Style>
在窗口的代码隐藏中:
private void DataGridCell_GotFocus(object sender, RoutedEventArgs e)
{
DataGridCell cell = sender as DataGridCell;
if (cell != null && !cell.IsEditing && !cell.IsReadOnly)
{
cell.IsEditing = true;
}
}
上面尝试的问题:
我必须单击单元格才能使其进入编辑模式。
【问题讨论】:
-
那么,您的要求是什么?单击单元格获得焦点并进入编辑模式,这对我来说似乎很完美。不是吗?
-
不,当我在一个单元格上按 TAB 键时,另一个单元格会获得焦点,但不会进入编辑模式。我的意思是我想在单元格获得焦点后立即将单元格置于编辑模式。
-
根据当前的行为,我必须按两次 TAB 才能使单元格处于编辑模式。
-
您是否为您的 TemplateColumn 定义了 CellEditingTemplate 并在其中放置了 TextBox?
-
@RohitVats 是的,我完全按照你的要求做了