2012-07-03 6 views
0

caliburn의 자동 바인딩을 통해 VM의 속성에 바인딩되는 텍스트 상자가있는 양식이 있습니다. 그러나 바인딩에 대해 이해가되지 않는 텍스트 상자에 무언가를 입력하면 Caliburn은 아무 것도하지 않습니다 (또는 그렇게 보았습니다).Caliburn.Micro 입력 바인딩의 유효성을 검사 할 수 있습니까

Caliburn이 입력을 입력에 제약하는 방법이 있는지 알고 싶습니다. 예 :

VM의 TimeSpan에 바인딩 된 TextBox가 있습니다. 00:00:10 쓰기가 제대로 작동하고 TimeSpan이 10 초로 설정됩니다.

00 : 00 : -10으로 쓰면 아무 것도 일어나지 않고 바인딩이 올바르게 바인딩 된 이전 값으로 유지됩니다.

답변

2

귀하의 문제는 단순히 데이터 바인딩을 사용하여 귀하의 뷰를 귀하의 뷰 모델에 연결하는 데 도움이되는 Caliburn.Micro와 관련이 없습니다. 사용해야하는 것은 데이터 바인딩의 유효성 검사입니다. data binding in Silverlight에 대한 자세한 내용은 데이터 유효성 검사 섹션을 참조하십시오.

Caliburn.Micro는 규칙을 사용하여 바인딩을 자동으로 만듭니다. 그러나 원하는 유효성 검사 동작을 얻으려면 XAML에서 이러한 바인딩을 사용자 지정해야 할 수 있습니다.

00:00:-10을 입력하는 경우 바인딩 엔진의 유형 변환기에서 예외가 발생하기 때문에 유효성 검사가 실패합니다. TextBox의 바인딩 표현식에 ValidatesOnExceptions 속성 값이 true로 설정되어 있으면 값이 유효하지 않다는 시각적 피드백을 받게됩니다. 입력 된 값을 TimeSpan으로 변환 할 수 없으므로 뷰 모델이 변경되지 않습니다.

관련 문제