ICommand에서 파생 된 명령을 나타내는 클래스에서 명령을 구현하는 것이 훨씬 깔끔하게 보입니다. 이 방법으로 MEF 복합 애플리케이션에서 명령을 내보내고 가져올 수도 있습니다.하나의 클래스에서 ICommand의 인스턴스를 여러 개 가지지 않고 ICommand에서 Command 클래스를 상속 할 수 있습니까?
가능하거나 실현 가능합니까? 이것을 달성하기위한 알려진 패턴이 있습니까?
ICommand에서 파생 된 명령을 나타내는 클래스에서 명령을 구현하는 것이 훨씬 깔끔하게 보입니다. 이 방법으로 MEF 복합 애플리케이션에서 명령을 내보내고 가져올 수도 있습니다.하나의 클래스에서 ICommand의 인스턴스를 여러 개 가지지 않고 ICommand에서 Command 클래스를 상속 할 수 있습니까?
가능하거나 실현 가능합니까? 이것을 달성하기위한 알려진 패턴이 있습니까?
MEF에 대해 많이 알지 못해서이 질문에 대한 답을 잘 모르겠습니다.
클래스의 명령 인스턴스를 직접 참조 할 필요는 없지만 뷰에 하나를 반환하는 바인딩 소스를 제시하는 방법이 필요합니다. MenuItem의 ItemsSource를 동적으로 생성 된 IEnumerable 명령을 반환하는 속성에 바인딩하여 메뉴를 작성할 수 있습니다.
<Button Command="{Binding Path=CommandId, Converter={StaticResource CommandConverter}}" />
또는 Binding.Source을 통해 XAML에서 직접 ID를 전달합니다 :
<Button Command="{Binding Source=DesiredCommand, Converter={StaticResource CommandConverter}}" />
을이에
또한 주문형 어떤 임의의 식별자에 대한 명령을 얻기 위해 value converter을 사용할 수 있습니다 경우 "DesiredCommand"문자열이 변환기로 전달됩니다.
명확하지 않은 질문은 여기에 있습니다. 'ICommand'는 인터페이스입니다. 이 인터페이스를 구현하는 고유 한 클래스를 만들 수 있습니다. –
인터페이스를 구현하는지 묻지 않습니다. 각 명령을 'ICommand'를 상속하는 클래스로 구현한다면 MEF 가져 오기 및 내보내기를 허용하는 것이 좋은 생각입니다. – ProfK