2016-08-29 12 views
2

誰もが、子ビューモデルからIsPresentedプロパティを制御する方法のヒントを持っていますか?Xamarin Prism MasterDetailPage.IsPresented from child ViewModel

私は負荷に私の子ページので、ハンバーガーアイコンの挙動をシミュレートするカスタムナビゲーションバーはナビゲーションパーを隠し

NavigationPage.SetHasNavigationBar(this, false); 

を持って実施しています。

Xamlファイルの中に、child viewmodelのPropertyCommandにバインドして、マスターページを表示するボタンがあります。基本的には何とかマスターのIsPresentedを呼び出します。

ありがとうございました。

答えて

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; 
    } 
} 

を実装します。直接IsPresentedプロパティを変更するには

他のソリューションは、ちょうどあなたのMasterDetailPageのインスタンスを保存するために静的変数を使用するようになり、アクセス

+0

おかげSKÄR、これは、私が@skar – James

+0

おかげで探していたまさにです私は似たような解決策を探しています。これが意味することは - 「IoCコンテナを使用してインターフェイスを登録して解決する」 ここをクリックしてください。 – lakvin

+0

IoCを使用すると、すでに画面に表示されている同じインスタンスを解決する必要があります。そうしないと、メモリ内に別のコピーが作成され、画面に何も表示されません。 –

関連する問題