너무 오래과 상반 돌출 정말 일관성있는 질문을 나던에서 INotifyPropertyChanged?MVVM - - prismv2이 이후
2 : 누구든지 delegatecommand.RaiseCanExecuteChanged 문제를 해결할 수있는 방법을 찾았습니까? 아니면 MS가 해결할 때까지 직접 수정해야합니까?
나머지 이야기는 계속 진행하십시오.
내 viewmodel에서 EF POCO 개체 인 Model.Doctor에 연결된 의사 개체 속성이 있습니다. 나는 같은 세터에서 ("의사") OnPropertyChanged를 한 :
Private Property Doctor() As Model.Doctor
Get
Return _objDoctor
End Get
Set(ByVal Value As Model.Doctor)
_objDoctor = Value
OnPropertyChanged("Doctor")
End Set
End Property
유일한 시간은 화재의 경우 전체 개체 변경을 OnPropertyChanged를. 이것은 의사의 속성이 언제 변경되는지 알 필요가 있다는 것을 제외하고는 문제가되지 않으므로 양식 (예 : 버튼 저장)에서 다른 컨트롤을 활성화 할 수 있습니다.
Public Property FirstName() As String
Get
Return _objDoctor.FirstName
End Get
Set(ByVal Value As String)
_objDoctor.FirstName = Value
OnPropertyChanged("Doctor")
End Set
End Property
이는 칼 Shifflet에서 XAMLPowerToys 컨트롤에서 가져온 것입니다, 그래서 내가 올바른 가정해야한다 :이 방법으로 그것을 구현하기 위해 노력했다. 그러나 저의 삶을 위해서 나는 그것을 작동시킬 수 없습니다.
내보기를 인스턴스화하기 위해 단일 컨테이너를 사용하고 있기 때문에 여기에 PRISM을 포함 시켰습니다. 닥터에게 새 값을 채우는 eventaggregator를 통해 viewmodel에 대한 변경 알림을 받고 있습니다. 이 모든 일을하는 이유는 PRISM의 DelegateCommand 때문입니다. 어쩌면 이것이 내 진짜 문제 일 것입니다.
DelegateCommand에 RaiseCanExecuteChanged 메서드를 구현하는 명령을 실행하지 않기 때문에 수동으로 해지해야하는 버그가있는 것으로 보입니다. 내 onPropertyChangedEventHandler에 대한 코드가 있습니다. 물론 이것은 ICommand 인터페이스를 통해 구현되지 않기 때문에 각 속성의 RaiseCanExecuteChanged에 액세스 할 수 있도록 DelegateCommand (X)의 속성을 해체하고 만들어야합니다.
네 참조, 그 경로를 이동하기로 결정했다. 나는 MEF를 위해 프리즘을 모두 덤프 할 수도 있습니다 ... hehe thanks – ecathell