У меня есть приложение Xamarin.Forms, поддерживающее UWP. На всех страницах я добавил TitleView с меткой:
var page = (Page)Activator.CreateInstance(item.TargetType);
Label titleViewLabel = new Label
{
Text = item.Title,
FontAttributes = FontAttributes.Bold,
FontSize = 25,
TextColor = Color.White,
BackgroundColor = backgroundColor,
Margin = 10
};
NavigationPage.SetTitleView(page, titleViewLabel);
Теперь одна из моих страниц имеет красивое название "Продукты".
На этой странице есть ListView of Products, и, щелкнув любой элемент на ней, мы переходим на страницу ProductDetailPage:
private async void ProductView_OnItemSelected(object sender, SelectedItemChangedEventArgs args)
{
Product product = (Product)args.SelectedItem;
ProductDetailPage productDetailPage = new ProductDetailPage
{
BindingContext = product,
Title = product.Name
};
await Navigation.PushAsync(productDetailPage);
}
Когда мы устанавливаем заголовок для названия продукта, предыдущий заголовок «Продукты» заменяется определенным названием продукта. Это нормально, но когда я нажимаю кнопку «Назад», чтобы снова перейти на страницу «Продукты». Но заголовок остается пустым. Я отладил его и вижу, что TitleView по-прежнему содержит текст «Продукты»:
protected override void OnAppearing()
{
base.OnAppearing();
Label titleView = ((Label)NavigationPage.GetTitleView(this));
// titleView.Text has "Products!!
}
Не могли бы вы рассказать, как я могу сделать так, чтобы название отображалось? Спасибо.