ViewModel에서 텍스트 상자에서 초점을 맞추고 텍스트를 선택하는 방법

StackOverflow https://stackoverflow.com/questions/930828

  •  06-09-2019
  •  | 
  •  

문제

간단한 WPF 앱의 맥락에서 MVVM을 실험하고 있습니다. 버튼에 명령이 첨부되어 있습니다. 텍스트 상자의 텍스트가 '잘못'인 경우 텍스트 상자에 초점을 맞추고 모든 내용이 선택된 내용을 원합니다. 이 작업을 수행하는 유일한 방법은 내 뷰 모델의 명령에서 뷰로의 직접 호출을 통해 또는 뷰 모델이 발사하는 일종의 이벤트를 설정하는 것입니다. 거기에서보기는 해당 텍스트 상자에서 직접 호출 할 수 있습니다.

나는 MVVM의 분리 된 특성에 머물려고 노력하고 있지만, XAML 에서이 행동을 선언적으로 얻거나 뷰 모델에서 직접 코드로 볼 수있는 방법이없는 것 같습니다 (인터페이스 또는 이벤트 ). 나는 또한 뷰 모델의보기에 대한 참조를 가지고 있어야한다.

여기서 '모범 사례'로 간주되는 것은 무엇이며, '실제'MVVM 응용 프로그램의 ViewModels에서 볼 수있는 견해는 어떻게 분리되어 있습니까?

도움이 되었습니까?

해결책

UI의 컨트롤과 직접 연결된 코드 이므로이 경우 뷰의 코드 베어드가 속한 위치라고 생각합니다. 이벤트 나 이와 비슷한 것을 설정하고 싶을 수도 있습니다. 그렇게하면 여전히 이전과 같이 분리되어 있습니다.보기는 어쨌든 뷰 모델을 알고 있습니다.

다른 팁

나는 같은 문제를 겪었습니다. 내가 한 일은이 컨트롤에서 맞춤형 텍스트 상자를 만들고 종속성 속성을 노출시키는 것입니다.

Focus와 마찬가지로 SelectAllText 및 이러한 속성을 바인딩하여 모델을 봅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top