XAML in Xamarin.Forms 基礎篇 電子書

特別說明

2017/02/06

Xamarin FAQ 2-06 : 如何動態變更工具列的頁面主題名稱

問題

在某些情況下,需要讓導航頁面的名稱能夠動態顯示不同的名稱,而不是固定一成不變同樣的文字,要使用甚麼方式來做到呢?

解答

在我們使用 MVVM 模式架構開發下,您可以使用資料繫結方式,把ViewModel內的某個屬性,綁定到 ContentPage.Title 這個屬性上;如此,當您想要顯示某個文字成為這個頁面的標題,就可以在頁面中動態顯示出不同文字頁面標題文字。
底下為在 ContentPage 內,指定 Title 這個屬性要綁訂到 PageTitle 這個屬性上。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="foo.Views.MyPage"
             Title="{Binding PageTitle}"
             >
在檢視模型中,首先先要宣告一個 PageTitle 這個屬性
        #region PageTitle
        private string _PageTitle;
        /// <summary>
        /// PageTitle
        /// </summary>
        public string PageTitle
        {
            get { return this._PageTitle; }
            set { this.SetProperty(ref this._PageTitle, value); }
        }
        #endregion
接著,您可以在檢視模型的建構式或者 OnNavigatedTo 事件中,設定 PageTitle 這個屬性的文字值,如此,當應用程式顯示這個頁面的時候,就會有不同的頁面標題文字了。
        public async void OnNavigatedTo(NavigationParameters parameters)
        {
            PageTitle = "這是客製頁面名稱";
        }
Xamarin-跨平台手機應用程式設計入門-粉絲團

沒有留言:

張貼留言