2009-08-19 1 views
0

WPF Toolkit DataGrid로 작업하고 있으며 현재 데이터를 소스로 다시 커밋하는 데 문제가 있습니다.데이터를 커밋하지 않는 셀의 탭 또는 선택 해제

내 표가 CLR 개체 목록에 바인딩되어 있고 변환 및 변환 방법이 모두 구현 된 변환기가 있습니다.

사용자가 셀에 Enter 키를 친 경우 양방향 바인딩이 제대로 작동하지만 셀에서 선택을 해제하거나 탭 밖으로 나가면 입력 된 데이터가 손실됩니다.

CellEditEnding 이벤트를 중단하고 Tab 및 Enter에 대한 두 이벤트가 동일하게 보입니다. 그러나 변환기에서 ConvertBack 메서드를 가져 오면 값이 비어 있습니다.

도움을 주시면 감사하겠습니다.

답변

1

컨트롤의 바인딩의 UpdateSourceTrigger 매개 변수를 기본 LostFocus 대신 PropertyChanged로 변경해보십시오.

  <TextBox 
      Width="75" 
      VerticalAlignment="Top" 
      Margin="10" 
      Text="{Binding 
      Source={StaticResource data}, 
      Path=Age, 
      UpdateSourceTrigger=PropertyChanged, 
      ValidatesOnDataErrors=True, 
      ValidatesOnExceptions=True}" 
      Style="{StaticResource textBoxInError}" /> 
+0

이 분명히 지금 고르게 지금은 잘 작동 각 키에 변경 ... 괜찮 았는데. 하지만 이것은 분명히 무언가가 입력되는 것을 허용하지 않고 IEditableObject와 같이 취소하기 위해 이스케이프 처리됩니다. – Oliver