2009-10-07 5 views
2

PRISM을 사용하는 경우 일반적인 방법은 단일 인터페이스를 정의하고이 인터페이스로 구현을 등록하는 것입니다. 이제보기와 관련하여 문제가 있습니다. 시나리오는 간단합니다 :UIElement (Unity, PRISM, C#)로 인터페이스 해결

재생 명령을 설정할 수있는 사용자 지정 비디오 컨트롤을 가정하십시오. 이 컨트롤은 간단한 인터페이스 "IPlayControlView"로 정의됩니다. 명백한 문제는이 컨트롤을 해결하고 StackPanel에 추가하려고 시도하면 작동하지 않습니다. IPlayControl이 아니고 UIElement이 아니기 때문입니다.

내가 UIElement이라는 것을 알고 있기 때문에 이것을 UIElement으로 전송할 수 있습니다. 하지만 ... 어떤 더 좋은 방법이 작동하지 않는

public interface IPlayControlView : UIElement 

같은 존재이지만, 어쩌면 다른 것은 트릭을 할 것입니다

내가 사용 뷰를 해결할 경우는, 일반적인 질문의 종류 인터페이스 내가 매번이 문제에 부딪 힐 것이다. 아마도 그것의 방법은 아니지만, 나는 항상 그 중 하나를 생각했다 .... 좋아, 그냥 아이디어가있어. IPlayControl을 하나의 속성 UIElement로 확장하고이를 자체에 대한 참조로 설정합니다. 그럼, 신경 쓰지 말고 질문에 답해주세요 :-)

더 좋은 방법이 있다면, 저는 항상 새로운 것을 배우고 싶습니다. 아마도 IUIElement일까요?

크리스

답변

6

마지막 두 번째 단락에서 설명하는 방식은 내가하는 방식입니다. 내 구현에서 다음

public interface IShell 
{ 
    UIElement GetView(); 
} 

:

public partial class MyMainShell : UserControl, IShell 
{ 
    public UIElement GetView() 
    { 
     return this; 
    } 
} 
예를 들어, 나는 같은 인터페이스 뭔가를 선언 (꽤 보통이다)을 UIElement로 내 IShell를 사용하려는 경우