Как изменить заголовок страницы после навигации

Я установил заголовок для первой страницы с помощью App._variable = "Title", после Navigation.PushAsync(new SecoundPage()) я устанавливаю App._variable = "New Title", а затем Navigation.PopAsync()), чтобы вернуться к первой странице, когда я возвращаюсь к первой странице, все еще заголовок «Заголовок», как я могу это изменить?

РЕДАКТИРОВАТЬ App.xaml.cs

namespace Test
{
    public partial class App : Application
        {
        public static int _ItemId { get; set; }

        public App()
        {
        InitializeComponent();

        MainPage = new NavigationPage(new FirstPage());
        }
    }
}

Ферстпаже.xaml.cs

private async void BtnSecoundPage_Clicked(object sender, EventArgs e)
{
    await Navigation.PushAsync(new SecoundPage());
}

SecondPage.xaml.cs (имеет ListView)

private void LVCustomerList_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    var selectedItem = e.SelectedItem as Items; //Item Model

    App._ItemId = selectedItem.ID;
    Navigation.PopAsync();
}

Вы используете NavigationPage? Предоставьте некоторый код, чтобы сделать ваш вопрос ясным.

HASSAN MD TAREQ 31.01.2019 05:44

Я дал ответ, а вы добавили к своему вопросу код, который никак не относится к тому, о чем вы спрашиваете. Я весьма озадачен.

Skin 31.01.2019 08:46

@BradDixon Извините за задержку с обновлением вопроса, но это то, о чем я спрашивал. Пожалуйста, пройдите его еще раз.

Mubah Mohamed 31.01.2019 10:10

@MubahMohamed, это нормально, но подходит ли мой ответ к твоему вопросу?

Skin 31.01.2019 10:11

Можете ли вы добавить свои файлы XAML, чтобы я мог показать вам, что делать?

FreakyAli 31.01.2019 11:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
1 027
1

Ответы 1

Вам нужно правильно настроить привязки.

В своем XAML убедитесь, что вы установили привязку для своего заголовка...

<?xml version = "1.0" encoding = "UTF-8"?>
<ContentPage 
    xmlns = "http://xamarin.com/schemas/2014/forms" 
    xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class = "PlaypenApp.TestPage"
    Title = "{Binding Title}">

</ContentPage>

... затем в вашем коде (если это то, что вы используете) вам нужно убедиться, что вы установили контекст привязки для страницы...

this.BindingContext = this;

... поместите приведенную выше строку кода непосредственно перед вызовом InitializeComponent()

Теперь добавьте свойство на свою страницу, это заменит использование App._variable...

private string _title;
public string Title
{
    get { return _title; }
    set { _title = value; OnPropertyChanged(); }
}

... затем, чтобы проверить все это, используйте этот код (в котором есть часть кода, который я указал выше)...

public TestPage()
{
    this.BindingContext = this;

    Title = "Old Title";

    InitializeComponent();

    Device.BeginInvokeOnMainThread(async () =>
    {
        await Task.Delay(2000);

        Title = "New Title";
    });
}

Через 2 секунды заголовок на странице должен измениться.

Я надеюсь, что это работает для вас. Дайте мне знать, как вы идете.

Другие вопросы по теме