Я установил заголовок для первой страницы с помощью 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();
}
Я дал ответ, а вы добавили к своему вопросу код, который никак не относится к тому, о чем вы спрашиваете. Я весьма озадачен.
@BradDixon Извините за задержку с обновлением вопроса, но это то, о чем я спрашивал. Пожалуйста, пройдите его еще раз.
@MubahMohamed, это нормально, но подходит ли мой ответ к твоему вопросу?
Можете ли вы добавить свои файлы XAML, чтобы я мог показать вам, что делать?





Вам нужно правильно настроить привязки.
В своем 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 секунды заголовок на странице должен измениться.
Я надеюсь, что это работает для вас. Дайте мне знать, как вы идете.
Вы используете NavigationPage? Предоставьте некоторый код, чтобы сделать ваш вопрос ясным.