2011-04-20 3 views
2

프리즘 4 응용 프로그램을 만들고 각 모듈이 처리 할 수있는 일련의 명령/이벤트를 제공하고 싶습니다. 적절한 UI 요소 (예 : 메뉴, 도구 모음, 리본 요소 등)를 사용하여 쉘에서 렌더링 할 수 있도록 이러한 이벤트를 셸에 등록하고 그에 따라 해고하고 싶습니다.프리즘 초보자 - 셸의 메뉴 또는 툴바로 명령/이벤트 등록

예 : "새 구성원 추가", "구성원 제거", "구성원 검색"등과 같은 기능을 제공하는 구성원 모듈이 있다고 가정 해 보겠습니다. "투자 모듈" 투자 창출 ","투자 수정 "등

각 모듈은 분명히 관련 기능에 대한 구현을 제공합니다. 또한 해당 기능 목록을 제공합니다.

이상적으로 셸은 이러한 높은 수준의 명령을 어떻게 든 집계하여 시각적으로 표시하지만 선택합니다. 예를 들어 메뉴 항목으로 말할 수 있습니다. 따라서 사용자가 "Member"-> "Search Member"메뉴 항목을 클릭하면 적절한 명령/이벤트가 발생하고 적절한 모듈/방법으로 라우팅됩니다.

현재 모듈이 쉘과 친숙한 이름 같은 UI 힌트와 함께 이러한 명령/이벤트를 어떻게 등록 할 지 확신하지 못합니다. 참조 구현과 명령 빠른 시작은이 특정 패턴에 대해서는별로 도움이되지 않습니다. 예 프리즘 정말 does't 사전

답변

1

에서

덕분에 당신에게 여기에 대한 지침을 제공합니다. 그러나 지금까지 내가 본 것은 메뉴 서비스를 만드는 것입니다.

귀하의 인터페이스는 다음과 같습니다

public interface IMenuService 
    { 
     void AddMenuItem(CommandViewModel item); 
     void AddMenuItem(CommandViewModel item, string parentName); 
     void AddMenuItem(CommandViewModel item, string parentName, bool insert); 
     ObservableCollection<CommandViewModel> GetMenuItems(); 

     void AddToolBarItem(CommandViewModel item); 
     void AddToolBarItem(CommandViewModel item, string toolBarName); 
     ObservableCollection<CommandViewModel> GetToolBarItems(); 
    } 

그런 다음 모듈 초기화 방법에 사용 가능한 모든 명령/메뉴 항목을 등록 할 것입니다.

+0

비슷한 결과를 얻었습니다. 공통 인프라 프로젝트에서 구현 한 "ICommandRegistry"관찰 가능 컬렉션이있었습니다. 부트 스트 래퍼는이 인스턴스를 작성하고 Unity로 인스턴스를 등록했습니다. 각 모듈은이 레지스트리에 "ICommands"를 추가했습니다. 셸에서는 메뉴가 레지스트리에 바인딩됩니다. – Chaitanya

관련 문제