[Visual Studio & Xamarin] 开发架构(四)-跨平台的MVVMCross与portable class library–Windows Phone 8
来源:互联网 发布:尤尼克斯和李宁 知乎 编辑:程序博客网 时间:2024/05/19 04:26
上一個範例我們在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的文字也是被更新為”統一按鈕名稱”。當按下這個按鈕時,文字標籤裡面的文字也被更新了。
- [Visual Studio & Xamarin] 开发架构(四)-跨平台的MVVMCross与portable class library–Windows Phone 8
- [Visual Studio & Xamarin] 开发架构(三)- 跨平台的MVVMCross与portable class library-Android
- Xamarin跨平台开发中的File Link 和 Portable Class Library的应用
- 在Xamarin中使用Portable Class Library 做跨平台应用
- Visual Studio 跨平台开发实战--- Hello Xamarin! [Visual Studio + C# + Xamarin = iOS/Android/Windows Apps ]
- [Visual Studio & Xamarin] 开发架构(二)-Repository与Entity Framework
- Visual Studio 跨平台开发实战(1) - Hello Xamarin!
- 用Visual studio和Xamarin构建移动开发平台
- Visual Studio 跨平台开发实战(3) - Xamarin iOS 多页面应用程式开发
- Visual Studio 跨平台开发实战(5) - Xamarin Android 多页面应用程式开发
- [Visual Studio & Xamarin] 开发架构(一)-IOC 翻转控制
- Visual Studio 跨平台开发实战(2) - Xamarin.iOS 基本控制项介绍
- Visual Studio 跨平台开发实战(4) - Xamarin Android 基本控制项介绍
- Visual Studio 跨平台App開發 - Hello Xamarin!
- Windows Phone 7之初体验(四.平台架构简介)
- Windows Phone 7之初体验(四.平台架构简介)
- Visual Studio 2012开发Windows Phone 8 App遇到的located assembly's manifest definition does not match 的问题
- Portable Windows Library
- _stdcall和_cdecl的区别
- 一名运维工程师的读书列表
- 将本地jar包手动拷贝到Maven库中,在其他电脑上用Maven打包时出错
- 百度社会化用到jsonkit的bug
- Hive中的LEFT SEMI JOIN<转>
- [Visual Studio & Xamarin] 开发架构(四)-跨平台的MVVMCross与portable class library–Windows Phone 8
- 面向对象的CSS(OOCSS)
- [hdu4438]Hunters
- 网络变压器在以太网中的作用
- 使用Visual Studio 创建新的Web Part项目
- django--中文乱码问题
- 习近平领导风格鲜明 网民称展现独特“主席范儿”
- banana pi 香蕉派是树莓派的"克隆"吗
- MFC 获取自己模块路径