我的 MVVM 应用程序中有一个数据网格,由于客户端希望显示数据的方式,需要使用模板列。他们需要一些典型的数据输入功能(按 Enter 执行数据检查,如果有效则提交该行,关注下一行的第一个文本框;按 Tab 关注下一个文本框......)。此外,数据通常从外部源导入到网格中,通常一次导入数千条记录。
现在,我有一个 Loaded 事件连接到每个文本框,我在添加新行后使用它来设置焦点。我的问题是当我导入很多行时网格会变得混乱。当用户滚动时,Loaded 事件被触发,并且网格变得基本不可用。我禁用了虚拟化以防止这种情况发生,并且发现我的网格在某些配置中占用了大量 RAM,这是不可接受的。在不使用大量内存的情况下,我想不出一种方法让这个网格按照他们需要的方式工作。似乎我只需要能够将文本框集中在新添加的行中,但由于数据验证是在视图模型中执行的,我无法访问代码隐藏中的新行,所以我不能只是调用“newtextbox.focus()”或其他什么。我在这里变得非常绝望,