저는 WPF MVVM을 처음 사용합니다.초록 사용자 정의 컨트롤
UserControl에서 상속 한 MyButtonsView라는 사용자 정의 컨트롤이 있습니다. 이 사용자 정의 컨트롤에는 다른 두 개의 사용자 정의 컨트롤이 표시되어야합니다.
나는 뷰 모델 클래스가 거의 없습니다. MyRedButtonViewModel, MyBlueButtonViewModel. 둘 다 MyAbsButtonViewModel이라는 추상 클래스에서 파생됩니다. 이 추상적 뷰 모델은 모든 파생 뷰 모델이 GetImage라는 프로퍼티 이름을 구현하도록 강제합니다.
MyButtonsView의 XAML에서 두 행이 있어야하는 표가 있습니다. 첫 번째 행에서 MyRedButtonViewModel을 갖고 싶습니다. 두 번째 행에 MyBlueButtonViewModel을 갖고 싶습니다. 둘 다 GetImage 속성에 바인드 된 버튼 안에 이미지를 표시해야합니다. (그것은 다형성이다).
각 행에 적합한보기 모델을로드하도록 XAML에 지시 할 수 있습니까?
적절한 방법으로 구현할 수 있습니다. 나는 내 디자인을 바꾸기 위해 마음을 열었다.
을 질문 게다가 : 당신의 이름에 대해 다시 생각해 보라고. MyAbsButtonViewModel은 Abs가 일반적으로 수학적 절대 값으로 사용되기 때문에 매우 혼란 스럽습니다. 이 추가 문자가 당신을 해치지 않지만 코드 품질을 향상시키는 한 더 나은 이름은 MyAbstractButtonViewModel입니다. 또 다른 제안은 다른 클래스가 파생 할 수있는 기본 클래스임을 나타내는 ButtonViewModelBase입니다. – PVitt