2016-08-29 3 views
2

Есть ли у кого-нибудь ключ к тому, как управлять IsPresented свойством из модели детского вида?Xamarin Prism MasterDetailPage.IsPresented от ребенка ViewModel

Я реализация пользовательских NavBar, где я хочу, чтобы имитировать поведение значка Гамбургера так что мой ребенок страница на нагрузке имеет

NavigationPage.SetHasNavigationBar(this, false); 

, скрывающие навигации пар.

Внутри Xaml-файла У меня есть кнопка, которую я хочу связать с PropertyCommand дочернего режима просмотра и показать главную страницу, в основном как-то назвать Master IsPresented.

Спасибо.

ответ

0

Существует несколько способов сделать это.

То, как я буду делать это, будет использовать MVVM и использовать интерфейс для доступа к функциональности «представления главной страницы», где это необходимо.

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

рисуются на MasterDetailPage, а также реализовать вышеуказанный интерфейс

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

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

Использование с помощью контейнера IoC для регистрации и разрешения интерфейс позволит использовать его функциональность, с которого вы хотите.

Другим решением было бы просто использовать статическую переменную для хранения экземпляра вашего MasterDetailPage и доступа, которые непосредственно изменить IsPresented свойство

+0

Благодаря Скар, это именно то, что я искал – James

+0

Спасибо @skar, Я ищу аналогичное решение. Что это значит - «с помощью контейнера IoC для регистрации и разрешения интерфейса» Новый для xamarin здесь .. пожалуйста, помогите – lakvin

+0

Используя IoC, вам нужно будет убедиться, что вы разрешаете тот же самый экземпляр, который уже представлен на экране. В противном случае у вас будет отдельная копия в памяти, и на экране ничего не произойдет. –

Смежные вопросы