[Visual Studio & Xamarin] 开发架构(四)-跨平台的MVVMCross与portable class library–Windows Phone 8

上一個範例我們在Android 上用MVVMCross 與 PCL的架構來實作了一個範例,接下來,就準備把這個架構延伸移轉到Windows Phone 8

與Windows Store App上。

 

1. 新增Windows Phone 8 專案

在Visual Studio新增一個Windows Phone專案,選擇[Windows Phone 應用程式]。


2. 在專案中加入MVVMCross Library

一樣在專案中,選擇[管理NuGet 套件]。在管理NuGet套件的頁面中,輸入[MVVMCross]來找尋MVVMCross套件,找到後把他安裝起來。


安裝完成後,可以看到專案下也多出了像上一篇Android專案中的資料夾。其中包括放置Layout 相關檔案的[View]資料夾。


3. 在專案中加入PCL類別參考


4. 修改專案中Setup.cs的程式

開啟Steup.cs檔案,修改CreateApp中的方法,使其回傳PCL的App類別。

1 protected override IMvxApplication CreateApp()
2 {
3      return new PortableClassLibrary1.App();
4  }

 

5. 修改App.xaml.cs程式

在App.xaml.cs檔案下的建構子下,新增

1 new Setup(RootFrame).Initialize();

 

接下來找到Application_Launching方法,新增下方的程式碼。

01 private void Application_Launching(object sender, LaunchingEventArgs e)
02 {
03    RootFrame.Navigating += RootFrameOnNavigating;
04 }
05  
06 private void RootFrameOnNavigating(object sender, NavigatingCancelEventArgs e)
07 {
08   e.Cancel = true;
09   RootFrame.Navigating -= RootFrameOnNavigating;
10   RootFrame.Dispatcher.BeginInvoke(() => { Cirrious.CrossCore.Mvx.Resolve<cirrious.mvvmcross.viewmodels.imvxappstart>().Start(); });
11 }</cirrious.mvvmcross.viewmodels.imvxappstart>

 

6. 調整ViewModel 下的FirstView.xaml檔案

接下來在這個範例中主要呈現畫面的Layout是FirstView.xaml。


在Layout下我們新增一個按鈕到畫面之中。


然後我們來看一下Source Code的部分,可以看到兩個TextBox在Text的部分都被Binding到Hello上。

這樣當如同上一個範例,被綁定在控制項上的變數值有改變的時候,ViewModel會負責通知View更新資料。

1 <TextBox Text="{Binding Hello, Mode=TwoWay}" />
2 <TextBlock Text="{Binding Hello}" />

 

在Button按鈕上,在Content上綁定ButtonText,這個屬性是在前一個章節我們有提到所有跨平台的Device都有這個Button,

我們統一用ViewModel來修改Button上要顯示的文字。最後則是在Command上榜定按鈕事件。

1 <Button Content="{Binding ButtonText}" Command="{Binding MyCommand}"></Button>

 

7. 編譯Windows

編譯這個Windows Phone App,在模擬器上,在文字方塊中我們輸入文字,ViewModel會同步幫我們更新另一個文字標籤的資料。


然後看到下方的Button上,Button的文字也是被更新為”統一按鈕名稱”。當按下這個按鈕時,文字標籤裡面的文字也被更新了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值