[英]Add Windows 8.1 Store Basic Page using MvvmCross (No Longer inherits from nonexistent LayoutAware but base Page class)
[英]Procedure for creating an MvvmCross Store application for Windows 8.1 from scratch?
使用Visual Studio 2013,我将基于MvvmCross为Windows 8.1创建新的Windows应用商店应用程序。
我首先根据Core.txt待办事项文件中的说明创建带有视图模型的PCL .Core类库。
接下来,我创建我的.Store应用程序,现在按照Windows Store UI.txt待办事项文件中的说明进行操作。 我确实想使用导航框架,所以我用Basic Page FirstView.xaml
替换FirstView.xaml
页面。
根据说明, LayoutAwarePage
类应继承MvxStorePage
但由于LayoutAwarePage.cs
不再包含在VS2013 / 8.1 Store项目中,我改为将我的FirstView.xaml
页面更改为MvxStorePage
类型:
<views:MvxStorePage x:Name="pageRoot" x:Class="App.Store.Views.FirstView"
... >
...
</views:MvxStorePage>
通过此更改,我启动应用程序时会显示FirstView ,但视图模型绑定不起作用! 在Windows应用商店8.1应用中设置MvvmCross视图模型绑定的正确步骤是什么?
似乎我忘记了Windows Store UI.txt待办事项文件中的一部分说明:
添加一个views文件夹和一个视图 - 基于BasicPage的xaml.cs和.xaml - 这将添加5个文件到Common文件夹。
- 将Common / LayoutAwarePage.cs继承更改为Cirrious.MvvmCross.WindowsStore.Views.MvxStorePage
- 更改Common / LayoutAwarePage.cs - 删除OnNavigatedTo和OnNavigatedFrom处理程序
- 为你的Xaml添加一些内容 - 例如<TextBlock Grid.Row="1" Text="{Binding Hello}"/>
如果我从FirstView.xaml.cs
文件中删除OnNavigatedTo
和OnNavigatedFrom
覆盖,则FirstViewModel
将正确绑定到FirstView
。
所以,据我所知,Windows 8.1上Windows Store应用程序的说明应该是:
<Page>
更改为<views:MvxStorePage>
。 OnNavigatedTo
和OnNavigatedFrom
覆盖。 编辑此外,为了避免视图模型混淆,从.xaml.cs文件中删除DefaultViewModel
属性和关联的defaultViewModel
字段也是一个好主意,并且还从<views:MvxStorePage>
标记中删除DataContext
属性在.xaml文件中,因为无论如何都会由MvvmCross设置相关的DataContext
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.