ViewModel에서 텍스트 상자에서 초점을 맞추고 텍스트를 선택하는 방법
문제
간단한 WPF 앱의 맥락에서 MVVM을 실험하고 있습니다. 버튼에 명령이 첨부되어 있습니다. 텍스트 상자의 텍스트가 '잘못'인 경우 텍스트 상자에 초점을 맞추고 모든 내용이 선택된 내용을 원합니다. 이 작업을 수행하는 유일한 방법은 내 뷰 모델의 명령에서 뷰로의 직접 호출을 통해 또는 뷰 모델이 발사하는 일종의 이벤트를 설정하는 것입니다. 거기에서보기는 해당 텍스트 상자에서 직접 호출 할 수 있습니다.
나는 MVVM의 분리 된 특성에 머물려고 노력하고 있지만, XAML 에서이 행동을 선언적으로 얻거나 뷰 모델에서 직접 코드로 볼 수있는 방법이없는 것 같습니다 (인터페이스 또는 이벤트 ). 나는 또한 뷰 모델의보기에 대한 참조를 가지고 있어야한다.
여기서 '모범 사례'로 간주되는 것은 무엇이며, '실제'MVVM 응용 프로그램의 ViewModels에서 볼 수있는 견해는 어떻게 분리되어 있습니까?
해결책
UI의 컨트롤과 직접 연결된 코드 이므로이 경우 뷰의 코드 베어드가 속한 위치라고 생각합니다. 이벤트 나 이와 비슷한 것을 설정하고 싶을 수도 있습니다. 그렇게하면 여전히 이전과 같이 분리되어 있습니다.보기는 어쨌든 뷰 모델을 알고 있습니다.
다른 팁
나는 같은 문제를 겪었습니다. 내가 한 일은이 컨트롤에서 맞춤형 텍스트 상자를 만들고 종속성 속성을 노출시키는 것입니다.
Focus와 마찬가지로 SelectAllText 및 이러한 속성을 바인딩하여 모델을 봅니다.
제휴하지 않습니다 StackOverflow