저는 Caliburn과 MVVM 패턴을 WPF 응용 프로그램에서 사용하고 있으며 가능한 한 많은 규칙을 사용하려고합니다. 제가 실행중인 한가지 문제는 가져온 클래스에서 일부 속성 변경 알림을 연결해야하는 경우입니다.Caliburn - 하위 용 PropertyChanged ViewModel
class ViewModelA
{
private readonly IViewModelB _b;
public ViewModelA(IViewModelB b)
{
_b = b;
}
public bool CanGo
{
get { return _b.MyBoolProperty; }
}
public void Go()
{
//Does something here
}
}
권장 (올바른) 방법은 NotifyOfPropertyChange (() => CanGo) MyBoolProperty의하여 PropertyChanged 이벤트가 떨어져 해고 ViewModelB 무엇을 호출하는 것입니다 :
는 내가 지금과 같은 뷰 모델을 말해봐?과거에는 이것을 관리하기 위해 PropertyObserver 유형 클래스를 사용했습니다.
아니면이 시나리오를 완전히 잘못 설계하고 있습니까? 당신의 "하위"- 모델이 공용 속성으로 노출되면
AutoCheckAvailabilityAttribute가 CommandManager 입력 시스템에 의존하여이 작업을 수행 할 수 있음을 발견했습니다. 그러나이 옵션을 사용하면 CanGo 메서드를 원하는 것보다 더 많이 호출 할 수 있다고 생각합니다. DependenciesAttribute를 사용하여이 작업을 수행하려면 어떻게해야합니까? 어떻게 작동시키는 지 알 수는 없습니다. – jonathanpeppers