Как изменить TabIndex TabbedPage при нажатии на него из ViewModel - PullRequest
0 голосов
/ 14 ноября 2018

Я нажимаю TabbedPage до MasterDetailPage с ViewModel по умолчанию TabbedPage, показывая первую выбранную вкладку.Как выбрать вторую вкладку?

Это мой код в ViewModel

async Task MoviesTab()
{
    await (App.Current.MainPage as MasterDetailPage).Detail.Navigation.PushAsync(new HomePage());
    (App.Current.MainPage as MasterDetailPage).IsPresented = false;
    //var pages=new HomePage().Children.GetEnumerator();
    //pages.MoveNext();
    //new HomePage().TabIndex = 1; //Not working
}

HomePage имеет две вкладки, определенные в xaml

public partial class HomePage : TabbedPage

При вызове MoviesTab() метод из бокового меню всегда отображается первой выбранной вкладкой.

Редактировать

Первый сценарий не работает и второй бросок NullReferenceExeption Исключение

Сценарий1

var tabbedPaged = new TabbedPage();
tabbedPaged.TabIndex = 1;
await (App.Current.MainPage as MasterDetailPage).Detail.Navigation.PushAsync(new HomePage());
(App.Current.MainPage as MasterDetailPage).IsPresented = false;

Сценарий 2

await (App.Current.MainPage as MasterDetailPage).Detail.Navigation.PushAsync(new HomePage());
(App.Current.MainPage as MasterDetailPage).IsPresented = false;
((App.Current.MainPage as MasterDetailPage).Detail as TabbedPage).TabIndex = 1;

enter image description here

1 Ответ

0 голосов
/ 14 ноября 2018

Сохраните TabbedPage в локальной переменной и измените индекс табуляции перед его отображением:

var tabbedPaged = new TabbedPage();
tabbedPaged.TabIndex = 1;
await (App.Current.MainPage as MasterDetailPage).Detail.Navigation.PushAsync(tabbedPaged);

Или получите текущую страницу сведений после того, как вы выдвинете ее в качестве текущей детали, приведете ее к TabbedPage и затем установите индекс:

((App.Current.MainPage as MasterDetailPage).Detail as TabbedPage).TabIndex = 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...