2017-10-11 1 views
0

개체 컬렉션에 바인딩 된 WPF MVVM 응용 프로그램에서 데이터 격자 (텍스트 상자가있는 데이터 격자 서식 파일 사용)가 있습니다. 데이터 표는 간단하며 2 개의 열 ("이름"과 "연도") 만 있습니다. 창에는 한 번 클릭 한 입력 버튼이있어 콜렉션 시작 부분에 빈 행을 삽입하여 데이터 그리드의 시작 부분에 삽입합니다.DataGrid의 첫 번째 셀에 포커스 설정 WPF MVVM 뒤에

XAML

<Button Name="InsertButton" Command="{Binding InsertCommand}" /> 

뷰 모델

public ViewModel() 
{ 
    InsertCommand = new DelegateCommand(OnInsert); 
} 

private void OnInsert(object obj) 
{ 
    MyList.Insert(0, new MyItem()); 
} 

이는 MVVM 설치와 작동하지만, 첫 번째 셀의 텍스트 상자 삽입 버튼을 클릭 할 때마다 초점을 설정하는 방법이 있는지 궁금, MVVM을 사용하는 대신 XAML 코드에서 프로그래밍 할 수 있습니까?

감사합니다.

+0

XAML 마크 업을 게시하십시오. – mm8

답변

0

좋은 해결책은 버튼 클릭으로 여러 명령을 구현하는 것입니다. 다음은이를 수행하는 방법에 대한 설명입니다. https://www.codeproject.com/Articles/25808/Aggregating-WPF-Commands-with-CommandGroup. 그런 다음 UIElement의 ".Focus()"메서드를 사용하여 필수 요소에 포커스를 설정할 수있는 코드 숨김 코드에서 두 번째 명령을 구현합니다.

또 다른 방법은 필요한 UIElement에서 .Focus()를 설정하기 위해 코드에서 처리되는 OnInsert 메서드의 끝에서 ViewModel에서 이벤트를 발생시키는 것입니다.

관련 문제