有没有兄弟在WPF中写过继承DataGrid的控件类似excel数据录入

yjjone 2014-09-02 09:00:00
如题,需要做的的效果是按回车能在DataGrid里的单元格焦点往右跳,到行的最后行最右边能动态生成一行,焦点跑到生成行的第一格单元格,


public class ExDataGrid : DataGrid //继承 控件
{
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down )
{
try
{
base.CommitEdit();
}
catch (Exception ex)
{
base.CancelEdit();

string mess = ex.Message;
if (ex.InnerException != null)
mess += "\n\n" + ex.InnerException.Message;
MessageBox.Show(mess);
}
}


base.OnPreviewKeyDown(e);
}

这个是实现了上下左右按键 可以使焦点 按上下左右键实现直接可以键入编辑和退出编辑



...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjjone 2014-09-04
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
[quote=引用 2 楼 yjjone 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 你的问题 是什么?
就是想增加 datagrid 能按回车进入下一个单元格编辑,如果是 该行的最后一个单元格,按回车后 自动生成一个新行,焦点在新行的第一个单元格内 要再增加这个按键功能 [/quote] 提供个思路; 绑定一个集合到datagrid ,判断当前输入的单元格是不是 本行中的最后一个,如果是,回车,在集合中增加一个空数据,在设置新行的第一个单元格获得焦点。[/quote] 我本来是用datagrid直接绑定数据库字段的 如果按照你的思路的话在数据库提取出来的数据需要做一个集合,通过控制这个集合的 大小,来控制 datagriddatagrid的 显示的行数 遇到的问题, 第一,按回车控制一行的单元格焦点 第二,多余的空行怎么去掉不保存进去 能否直接加载 datagrid的行,然后直接插入到数据库中去呢?
exception92 2014-09-03
  • 打赏
  • 举报
回复
你的问题 是什么?
yjjone 2014-09-03
  • 打赏
  • 举报
回复
顶顶顶
yjjone 2014-09-03
  • 打赏
  • 举报
回复
我顶
exception92 2014-09-03
  • 打赏
  • 举报
回复
引用 2 楼 yjjone 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 你的问题 是什么?
就是想增加 datagrid 能按回车进入下一个单元格编辑,如果是 该行的最后一个单元格,按回车后 自动生成一个新行,焦点在新行的第一个单元格内 要再增加这个按键功能 [/quote] 提供个思路; 绑定一个集合到datagrid ,判断当前输入的单元格是不是 本行中的最后一个,如果是,回车,在集合中增加一个空数据,在设置新行的第一个单元格获得焦点。
yjjone 2014-09-03
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
你的问题 是什么?
就是想增加 datagrid 能按回车进入下一个单元格编辑,如果是 该行的最后一个单元格,按回车后 自动生成一个新行,焦点在新行的第一个单元格内 要再增加这个按键功能

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧