MVVM 응용 프로그램에 데이터 격자가 있습니다. 클라이언트가 데이터를 표시하는 방식 때문에 템플릿 열을 사용해야합니다. 그들은 몇 가지 전형적인 데이터 입력 기능을 원합니다. (데이터 입력을 수행하고 데이터를 확인하고 유효한 경우 행을 커밋하며 다음 행의 첫 번째 텍스트 상자에 초점을 맞추고 탭을 누르면 다음 텍스트 상자를 초점을 맞 춥니 다. 또한 외부 소스에서 그리드로 데이터를 가져 오는 경우가 많습니다. 일반적으로 한 번에 수천 개의 레코드가 있습니다.MVVM WPF DataGrid 데이터 입력 문제
지금 당장은 새로운 행을 추가 한 후 포커스를 설정하는 데 사용하는 각 텍스트 상자에 Loaded 이벤트를 연결했습니다. 내 문제는 많은 행을 가져올 때 눈금 선이 엉망이된다는 것입니다. 사용자가 스크롤하면 Loaded 이벤트가 발생하고 그리드는 기본적으로 사용할 수 없게됩니다. 이 문제를 방지하기 위해 가상화를 사용하지 않도록 설정하고 특정 구성에서 RAM을 많이 차지하는 그리드를 찾았습니다. 이는 받아 들일 수없는 것입니다. 방대한 양의 메모리를 사용하지 않고도 이러한 그리드를 원하는 방식으로 작동시킬 수있는 방법을 찾아 낼 수 없습니다. 마치 새로 추가 된 행에 텍스트 상자를 집중시킬 필요가있는 것처럼 보이지만 데이터 유효성 검사가 viewmodel에서 수행되므로 코드 비하인드에서 새 행에 액세스 할 수 없으므로 "newtextbox.focus()"또는 무엇이든 호출하십시오. 나는 여기에서 꽤 절박하게되고있다, 어떤 제안이라도 크게 감사 할 것이다.
초점 WPF에서 파티 변기의 종류에 갈 것입니다 당신의 XAML
이 될 것입니다. Josh Smith가 작성한이 게시물을 확인하십시오. http://joshsmithonwpf.wordpress.com/2010/03/16/control-input-focus-from-viewmodel-objects/ 아마도 해결책에 대한 힌트가 있습니다. – Matthieu
그리드에서 편집/유효성 검사를 건너 뛰고 표시 용 그리드를 사용하는 솔루션은 어떨까요? 그런 다음 그리드 - 행이 말하면 더블 클릭하면 그리드의 행을 편집하는 그리드 - 행 - 편집기가 팝업됩니다. – hkon
분명히 날지 않을 것입니다 ... 클라이언트는 그리드 내에서 직접 데이터 입력을 원합니다. 나는 노력했다. – drowned