많은 컨트롤이있는 MVVM 기반 Window가 있고 모델에 IDataErrorInfo
이 있습니다.IDataErrorInfo를 사용하여 ViewModel에서 View에 유효성 검사 오류 업데이트를 적용하는 방법은 무엇입니까?
또한 속성을 분석하여 유효성 검사를 수행하는 SaveCommand
단추가 있습니다.
특정 컨트롤의 값을 변경하거나 PropertyChanged를 사용하여 해당 속성의 변경 사항을 알릴 때만 뷰에 오류 주변의 기본 빨간색 테두리가 으로 표시됩니다.
컨트롤을 건드리지 않은 경우에도보기가 모든 유효성 검사 오류를 표시하도록하려면 어떻게해야합니까?
모든 유효성 검사 바인딩에는 ValidatesOnDataErrors=True, NotifyOnValidationError=True
이 포함됩니다.
모든 오류가있는 집계 상자가있는 것이 하나의 해결책이지만 컨트롤 단위로 오류를 표시하는 것이 좋습니다.
ViewModel의 각 바운드 속성에 대해 Model.NotifyPropertyChanged
을 트리거하고 싶지 않습니다.
Silverlight가 아닌 WPF 4.0을 사용하므로 INotifyDataErrorInfo
이 작동하지 않습니다.
PropertyChanged를 사용해 주셔서 감사합니다. 나는 그것이 가능하다는 것을 몰랐다. 이 주제에 대한 또 다른 토론을 찾았습니다. http://stackoverflow.com/questions/1135012/wpf-mvvm-can-a-single-propertychanged-update-all-the-data-bindings-of-a-datate if 누구든지 관심이있다. 누군가가 단일의 간단한 viewModel을 가지고 있다면 이것은 좋은 대답입니다.그러나 중첩 된 ViewModels 함께 복잡한보기를 가지고 있으므로 코드를 작성하여 각 중첩 된 바인딩 된 Model/ViewModel INotifyPropertyChanged 구현하는 번 한 번 호출해야합니다 – surfen
하나의보기 만 관련된 업데이트가 필요한 경우이 트릭을 알고 좋다 특정의 ViewModel에 대해서 – surfen
myControl.GetBindingExpression (ControlType.ControlProperty) .UpdateTarget(); 소스 속성을 업데이트하지 않고 실제로 유효성을 검사합니다. – r41n