Try
{
// Data Binding
}
Catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
데이터 바인딩시 오류가 발생하면 .Net에서 예외가 발생하지 않는 이유는 무엇입니까? 이 디자인의 배경은 무엇일까요?WPF에서 데이터 바인딩 문제를 알리는 예외를 발생시키지 않는 이유
Try
{
// Data Binding
}
Catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
데이터 바인딩시 오류가 발생하면 .Net에서 예외가 발생하지 않는 이유는 무엇입니까? 이 디자인의 배경은 무엇일까요?WPF에서 데이터 바인딩 문제를 알리는 예외를 발생시키지 않는 이유
데이터 바인딩시 예외를 발생시키는 대신 WPF는 컨트롤에 데이터 바인딩 문제를 가로 채고 이에 대응할 수있는 기회를 제공합니다.
예를 들어 텍스트 속성에 바인딩 된 숫자 상향 제어는 잘못된 바인딩 또는 유효성 검사 오류에 대한 응답으로 메시지 상자를 표시하거나 주위에 빨간색 상자를 그릴 수 있습니다.
대한 추가 정보를 원하시면,이 블로그 항목을 체크 아웃 : Displaying Data Validation Messages in WPF
Downvoted, 내가 이것에 시간을 보냈 기 때문에 데이터 유효성 검사가 깨진 바인딩에 도움이 될 것 같지 않습니다. – Arek
데이터 바인딩 코드는 자동의 깊은 WPF &의 내부입니다. 데이터 바인딩을 업데이트하기위한 호출을하지 않습니다. INotifyPropertyChanged
인터페이스와 바인딩이 업데이트 되더라도 코드에서 바인딩 된 속성 값의 변경을 WPF에 알립니다.
그러나 UI 컨트롤을 INotifyPropertyChanged
을 구현하지 않는 속성에 바인딩 할 수도 있습니다. 이 경우 코드에서 아무 곳에서나 예외를 잡을 수 있습니다.
여기에 다른 사람들이 말한 것 외에도 WPF는 PresentationTraceSources
class을 제공하며 데이터 바인딩 (및 기타 영역)과 관련된 다양한 수준의 피드백을 제공 할 수 있습니다. MSDN에서 연결된 페이지와 How to: Display WPF Trace Information 페이지를보고 WPF 추적 기능을 활용하는 방법을 확인할 수 있습니다.
다른 방법으로 오류 정보도 Visual Studio의 출력 창에 직접 출력되므로 다른 곳을보고 있더라도 잘못된 정보를 찾을 수 있습니다.
WPF는 아마 단지 개발 팀에 알려져있다 Exception
의 데이터 바인딩을 포기하지 않는 이유를 실제 이유
오류의 예를 게시하십시오. readonly 속성에 바인딩하려고하면 예외가 발생합니다. – Paparazzi