2016-08-29 2 views
2

자식보기 모델에서 IsPresented 속성을 제어하는 ​​방법에 대한 단서가 있습니까? 내가 부하에 내 아이 페이지 탐색 파를 숨 깁니다Xamarin Prism MasterDetailPage.IsPresented from child ViewModel

NavigationPage.SetHasNavigationBar(this, false); 

을 가지고 있으므로 햄버거 아이콘 동작을 시뮬레이션 할 위치

나는 사용자 정의 Navbar의를 구현하고 있습니다.

Xaml 파일 내부에는 child viewmodel의 PropertyCommand에 바인딩하고 기본적으로 Master의 IsPresented를 호출하는 Master 페이지를 표시하는 버튼이 있습니다.

감사합니다.

답변

0

몇 가지 방법이 있습니다.

MVVM을 사용하고 인터페이스를 사용하여 '마스터 페이지를 표시'기능에 액세스해야합니다.

public interface ICustomMasterDetail 
{ 
     void SetMasterPresented(bool isPresented); 
} 

이제 MasterDetailPage에 확장도 등록하고 당신이 원하는 어느 곳에서 그 기능을 사용하게됩니다 인터페이스를 해결하기 위해 IoC 컨테이너를 사용하여 위의 인터페이스

public class CustomMasterDetail : MasterDetailPage, IRootMasterDetail 
{ 
    public CustomMasterDetail() : base() 
    { 
     //constructor code 
    } 

    public void SetMasterPresented(bool isPresented) 
    { 
     IsPresented = isPresented; 
    } 
} 

를 구현합니다.

다른 솔루션 그냥 직접

+0

감사 SKAR을 IsPresented 속성을 변경하려면 MasterDetailPage 및 액세스의 인스턴스를 저장하는 정적 변수를 사용하는 것, 이것이 내가 @skar – James

+0

감사 찾고 정확히 무엇을, 나는 비슷한 해결책을 찾고있다. 이것이 의미하는 바는 - "IoC 컨테이너를 사용하여 인터페이스를 등록하고 해결" xamarin의 새로운 기능 .. 좀 도와주세요 – lakvin

+0

IoC를 사용하면 이미 화면에 표시된 것과 동일한 인스턴스를 확인해야합니다. 그렇지 않으면 메모리에 별도의 사본이 생겨 화면에 아무 것도 나타나지 않습니다. –

관련 문제