我在我的MVVM应用程序中有一个数据网格,由于客户希望显示数据的方式,需要使用模板列。但是,他们希望拥有一些典型的数据输入功能(按下Enter键执行数据检查,如果有效则提交行,将焦点放在下一行的第一个文本框上;按下Tab键将焦点放在下一个文本框上...)。此外,数据通常从外部来源导入到网格中,通常一次导入数千条记录。
现在,我为每个文本框连接了一个Loaded事件,我正在使用它来设置新行添加后的焦点。我的问题是,当我导入大量行时,网格变得非常混乱。随着用户滚动,Loaded事件被触发,网格基本上无法使用。我禁用了虚拟化以防止这种情况,并发现我的网格在某些配置中占用了1GB的RAM,这是不可接受的。我找不到一种方法使这个网格按照他们的要求工作而不使用大量内存。似乎我只需要能够在新添加的行中聚焦文本框,但由于数据验证是在视图模型中执行的,我无法在代码中访问新行,因此不能调用“newtextbox.focus()”或其他操作。我现在非常绝望,任何建议都将不胜感激。