나는 Xamarin Forms에서 Prism을 사용하여이 문제에 대한 올바른 접근법을 찾으려고 노력했다.Xamarin + Prism : 버블 속성이 계층 모델/뷰 모델에서 이벤트를 변경하거나 ...?
나는 다른 클래스 인 Address를 속성으로 포함하는 Customer 클래스를 가지고있다. 내 견해로, 두 개체의 필드를 보여줍니다. "저장"버튼을 사용하고 싶습니다.이 버튼은 모델을 변경 한 후에 만 활성화됩니다.
이제 버튼은 DelegateCommands에서와 마찬가지로 해당 CanSave() 함수를 사용하여 Command에 바인딩됩니다. 내가보기 모델에서 하나의 IsDirty 속성으로 끝날 수있는 접근법을 찾으려고 노력 중입니다.이 속성은 기본 모델로 변경된 후에 "true"가됩니다.
MVVM 접근 방식을
나는 "순수한"MVVM 접근 방식이라고 생각 우선. 각각의 게터/세터 가져 프리즘 BindableObject/시각적으로 구현 각 요소에 대한 속성 A "평면"보기 모델, 기본적인 모델 클래스로 /로부터의 값을 설정한다. 하지만 실패
,하는 SetProperty < 이후> 내 모델에서 속성을 사용할 수없는 심판 매개 변수를 가지고있다.
오버 엔지니어링 접근 [은?] 내가 생각
두 번째 것은 나의 내부 모델은 관찰 가능한 자체라면, 나는 나무를 통해, 그들 모두로부터의 변경을들을 수 있다고했다. 완전히 새로운 세상을 열어줍니다. 내 View 모델에 속성 변경 리스너를 등록합니까? 내부 모델을 관찰 할 수있게 만들고, 부모가 자녀들의 변화 사건을 경청하고 전파하도록합니까?
관측 가능한 모델에 빠르게 접근하면 이벤트 처리기가되지 않습니까?
그리고 마지막으로 가장 간단한 것은, 가능한 가장 간단한 것. ViewModel을 평면으로 관측 할 수 있습니다. 읽기만하면 값을 쓰거나 읽습니다. & 저장
너희들은 어떻게 생각하니?
감사 스벤 마이클 Stübe 및 @adminSoftDK @ 많이 :) 다시는 내 마음을 바꿀
덕분에 저를 강제로 때까지
그래서, 나는, 그 갔다 대답 일 수 있습니다. 어제부터 내 자신의 SetProperty 도우미도 만들었으므로 이해할 수있는대로 프리즘을 사용하기 시작했습니다. – anjelinio
그러나 이제 내 문제는 OnNavigatedTo가 내 모델이 아직로드되지 않은 초기 데이터 바인딩 이후에 호출된다는 것입니다./ – anjelinio
MvvmCross에서'RaiseAllPropertiesChanged'를 쉽게 호출 할 수 있습니다. 프리즘에 비슷한 메커니즘이 있는지 확실하지 않습니다. OnPropertyChanged (string.Empty)를 호출 할 수 있습니까? –