2010-12-15 3 views
1

나는 비슷한 것을하려고합니다.Datagrid의 CommitEditCommand를 뷰 모델의 ICommand에 바인딩 할 수 있습니까?

<Button Command="{Binding DeleteCommand}" /> 

여기서 DeleteCommand는 뷰 모델에 의해 노출 된 ICommand입니다.

나는 다음과 비슷한 것을 할 수 있다고 생각했지만, 이것은 그렇지 않다.

<DataGrid CommitEditCommand="{Binding CommitCommand}" /> 

기본적으로 뷰 모델에서 이벤트 발생을 캡처하고 이에 대한 조치를 취하려고합니다. 내가 여기서 무엇을 놓치고 있니?

답변

1

내 초기의 직감은 없습니다 ... 이것은 Vincent Sibal의 blog에서 읽은 내용을 기반으로합니다.

DataGridCommitEditCommandIEditableCollectionView이라고 부릅니다. 그래서 ...

DataGrid.CommitEditCommand ->IEditableCollectionView.CommitEdit -> 따라서

IEditableObject.EndEdit 모델은 IEditableObject을 구현하고 당신은 DataGrid 타격 (CommandManager의를 통해 저장 InputBinding)를 입력 기본적으로 DataGrid.CommitEditCommand를 실행에서 셀에 있다면

블로그에서는 RowEditEnding 또는 CellEditEnding과 같은 이벤트를 사용하여 이론적으로 명령을 취소 할 수있는 명령을 취소 할 수 있으며 그 시점에서 취소 할 수 있습니다. 원하는 행동으로 연결하십시오.

+0

+1 vince Sibal의 블로그에 대한 링크입니다. – David

관련 문제