Avalonia DataGrid 控件的LostFocus事件会多次触发

10-18:有大佬指出两点

①:focus要和单元格内容是否为空一起判断(这个有时间我会验证一下,不然每个控件加个按钮显得呆呆的)

②点击表示选中,编辑是双击

不知道我的用法是否正确。

需求是在修改单元格后,希望原单元格失去焦点后,会自动触发保存功能。

发现DataGrid控件里有一个LostFocus事件,想用随机数验证一下事件的触发情况

可能会把项目放到触摸屏上用,所以想试试。

cs 复制代码
  private void Dgv_OnLostFocus(object? sender, RoutedEventArgs e)
    {
        Random rd = new Random();
        
        Console.WriteLine($"失去焦点验证+{rd.Next(10,100)}");
    }

现在表格没有选中,控制台也清空了。

点击测试

单击 了序号3,再单击序号4。

红色光圈是单击 序号3触发,下面两条是从序号3单击序号4触发。

注意:此时甚至没有进入编辑状态

刚进入系统的时候,直接单击 任意单元格会触发3次事件从而进入编辑状态。

现在清空控制台,尝试直接再次单击已选中进入编辑状态

进入编辑状态

可见控制台输出了3次

。。。。。。

直接从选中行,双击进入新选中行的编辑状态

双击序号1

控制台LostFocus触发了5次。。。。额。。。。

还是加个保存按钮吧。。

相关推荐
执笔画流年呀3 分钟前
计算机是如何⼯作的
linux·开发语言·python
weixin_520649874 分钟前
C#闭包知识点详解
开发语言·c#
东北甜妹9 分钟前
Redis Cluster 操作命令
java·开发语言
花间相见11 分钟前
【大模型微调与部署01】—— ms-swift-3.12入门:安装、快速上手
开发语言·ios·swift
techdashen18 分钟前
Rust 正式成立 Types Team:类型系统终于有了专属团队
开发语言·后端·rust
jiayong2322 分钟前
第 17 课:任务选择与批量操作
开发语言·前端·javascript·vue.js·学习
量子炒饭大师30 分钟前
【C++11】RAII 义体加装指南 ——【包装器 与 异常】C++11中什么是包装器?有哪些包装器?C++常见异常有哪些?(附带完整代码讲解)
开发语言·c++·c++11·异常·包装器
telllong34 分钟前
Python异步编程从入门到不懵:asyncio实战踩坑指南
开发语言·python
知兀34 分钟前
【Result类】(使用/不使用<T> data的情况);自带静态方法、纯数据类;
java·开发语言
达帮主35 分钟前
25.C语言 递归函数
c语言·开发语言·汇编