首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过单击将焦点设置到WPF数据网格的选定单元格?

如何通过单击将焦点设置到WPF数据网格的选定单元格?
EN

Stack Overflow用户
提问于 2012-12-15 20:06:36
回答 1查看 4K关注 0票数 1

我正在使用WPFDataGrid控件,并希望通过单击将键盘焦点设置为选定的Cell。默认情况下,用户必须双击单元格才能开始写入。我尝试的代码是:

代码语言:javascript
复制
<Style TargetType="{x:Type DataGridCell}" x:Key="DataGridCellStyle">
   <Setter Property="IsTabStop" Value="True" />
   <Setter Property="Focusable" Value="True" />    
   <Style.Triggers>
      <Trigger Property="IsKeyboardFocusWithin" Value="True">
        <Setter Property="IsEditing" Value="True" />
      </Trigger>
   </Style.Triggers>
</Style>

当我点击一个单元格时,它会转到Editmode,我需要再次点击在那里设置键盘焦点,然后开始写作!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-15 20:38:12

我不确定这是不是一个很好的特性。你可能不能选择多个单元格。不管怎样处理OnCurrentCellChanged事件。

代码语言:javascript
复制
void DG1_OnCurrentCellChanged(object sender, SelectedCellsChangedEventArgs e)
{
    DataGrid dg=(Datagrid)sender;
    dg.BeginEdit();
}

BeginEdit()会导致DataGridPreparingCellForEdit事件发生,我认为您应该处理该事件:

代码语言:javascript
复制
private void dg_PreparingCellForEdit(object sender,  DataGridPreparingCellForEditEventArgs e)
{
TextBox tb = e.EditingElement as TextBox;
if (tb != null)
   {
       tb.Focus();
       //you can set caret position and ...
   }
}

此外,您还可以处理BeginningEdit事件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13892012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档