从头开始为Windows 8.1创建MvvmCross Store应用程序的过程?

时间:2013-11-12 09:23:29

标签: c# windows-store-apps mvvmcross windows-8.1

使用Visual Studio 2013,我将基于 MvvmCross 为Windows 8.1创建新的Windows应用商店应用。

我首先根据 Core.txt 待办事项文件中的说明创建包含视图模型的PCL .Core 类库。

接下来,我按照 Windows Store UI.txt 待办事项文件中的说明创建 .Store 应用程序。我确实想要使用导航框架,因此我将FirstView.xaml页面替换为基本页面 FirstView.xaml

根据说明,LayoutAwarePage类应该继承MvxStorePage,但由于LayoutAwarePage.cs不再包含在VS2013 / 8.1商店项目中,我改为FirstView.xaml页面为MvxStorePage类型:

<views:MvxStorePage x:Name="pageRoot" x:Class="App.Store.Views.FirstView"
 ... >
...
</views:MvxStorePage>

通过此更改,启动应用程序时会显示 FirstView ,但视图模型绑定不起作用!在Windows应用商店8.1应用中设置MvvmCross视图模型绑定的正确步骤是什么?

1 个答案:

答案 0 :(得分:4)

似乎我忘记了 Windows Store UI.txt 待办事项文件中的一部分说明:

  

添加一个views文件夹和一个视图 - 基于BasicPage的xaml.cs和.xaml - 这将在Common文件夹中添加5个文件。
- 将Common / LayoutAwarePage.cs继承更改为Cirrious.MvvmCross.WindowsStore .Views.MvxStorePage
     - 更改Common / LayoutAwarePage.cs - 删除OnNavigatedTo和OnNavigatedFrom处理程序
     - 为您的Xaml添加一些内容 - 例如<TextBlock Grid.Row="1" Text="{Binding Hello}"/>

如果我从OnNavigatedTo文件中删除OnNavigatedFromFirstView.xaml.cs覆盖,则FirstViewModel将正确绑定到FirstView

因此,据我所知,Windows 8.1上的Windows应用商店应用说明应为:

  • 在每个视图.xaml 文件中,将<Page>更改为<views:MvxStorePage>
  • 在每个视图.xaml.cs 文件中,删除OnNavigatedToOnNavigatedFrom替换。

修改 此外,为了避免视图模型混淆,从 .xaml.cs 文件中删除DefaultViewModel属性和关联的defaultViewModel字段也是一个好主意,并且还会从 .xaml 文件中的DataContext标记中删除<views:MvxStorePage>属性,因为无论如何都会通过 MvvmCross设置相关的DataContext