XAML in Xamarin.Forms 基礎篇 電子書

XAML in Xamarin.Forms 基礎篇 電子書
XAML in Xamarin.Forms 基礎篇 電子書

Xamarin.Forms 快速入門 電子書

Xamarin.Forms 快速入門 電子書
Xamarin.Forms 快速入門 電子書

2017/02/27

Xamarin FAQ 2-25 : 如何從Code Behind中取得這個頁面綁定的 ViewModel

問題

有些時候,為了方便起見,想直接使用 Code Behind 程式碼,直接來處理一些事情;此時,若想要在 Code Behind 中,存取 ViewModel 中的屬性,或者呼叫 ViewModel 內的方法,該如何處理呢?

解答

在這裡,我們假設這個頁面名稱為 MainPage,而該頁面的 ViewModel 為 MainPageViewModel
您可以使用底下方式取得這個頁面的 ViewModel 物件;在這裡,我們宣告一個欄位型別為 MainPageViewModel 的 fooMainPageViewModel 物件,在建構式中,取得該頁面的 BindingContext 物件,並且轉型成為 MainPageViewModel。
而頁面的 BindingContext 是透過了這個 XAML 宣告 prism:ViewModelLocator.AutowireViewModel="True",由 Prism 自動將 ViewModel 物件產生,並且設定到頁面的 BindingContext 屬性上。
    public partial class MainPage : ContentPage
    {
        MainPageViewModel fooMainPageViewModel;
        public MainPage()
        {
            InitializeComponent();

            fooMainPageViewModel = this.BindingContext as MainPageViewModel;
        }
    }
Xamarin-跨平台手機應用程式設計入門-粉絲團

沒有留言:

張貼留言