我的MVVM應用程序中有一個datagrid,因爲客戶端希望顯示數據的方式,需要使用模板列。他們想要一些典型的數據輸入功能(按Enter執行數據檢查,如果有效則提交該行,將焦點放在下一行的第一個文本框上;按Tab鍵將焦點放在下一個文本框中...)。另外,數據通常從外部源輸入到網格中,通常每次都有數千條記錄。MVVM WPF datagrid數據錄入問題
現在,我有一個Loaded事件連接到每個文本框,我用它來添加新行後設置焦點。我的問題是,當我導入很多行時,網格會變得不合時宜。當用戶滾動時,加載的事件被觸發,網格變得基本不可用。爲了防止這種情況,我禁用了虛擬化功能,並發現我的網格在某些配置中佔用了一定的RAM空間,這是不可接受的。我無法弄清楚如何在不使用大量內存的情況下按照他們的要求工作。看起來好像我只需要能夠將文本框集中到新添加的行中,但由於數據驗證是在viewmodel中執行的,因此我無法訪問代碼隱藏中的新行,所以我不能調用「newtextbox.focus()」或其他。我在這裏變得非常絕望,任何建議都會受到大力讚賞。
重點是一種在WPF掃興的。檢查這個帖子喬希史密斯http://joshsmithonwpf.wordpress.com/2010/03/16/control-input-focus-from-viewmodel-objects/,也許有一個解決方案的提示。 – Matthieu
如何在網格中跳過編輯/驗證並僅使用網格進行顯示的解決方案如何?然後當一個網格行被說出時,雙擊你彈出一個網格行編輯器,它用作網格中行的編輯。 – hkon
這絕對不會飛......客戶希望直接在網格中輸入數據。我試過了。 – drowned