移动仿真器上的Prism-Mvvm应用程序部署错误

时间:2016-11-05 18:39:19

标签: mvvm uwp prism

我在Mobile Emulator 10586上部署一个简单的Prism.Mvvm应用程序时遇到异常,它可以在模拟器和本地计算机上运行。 我正在引用Prism.storeapps包。这是我的代码

App.xaml.cs

namespace MvvmSample
{
    sealed partial class App : MvvmAppBase
    {
        public App()
        {
            InitializeComponent();
        }
        public enum Expirences
        {
            Main
        }
        protected override Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args)
        {
            this.NavigationService.Navigate(Expirences.Main.ToString(), null);
            return Task.FromResult<object>(null);
        }

    }
}

MainPage.xaml中

<controls:PageBase
    x:Class="MvvmSample.Views.MainPage"
    xmlns:controls="using:MvvmSample.Controls"
    xmlns:prism="using:Microsoft.Practices.Prism.Mvvm"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MvvmSample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    prism:ViewModelLocator.AutoWireViewModel="True"
    mc:Ignorable="d">
    <d:Page.DataContext>
        <local:MainPageViewModel/>
    </d:Page.DataContext>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <TextBlock Text="{Binding Title}" FontSize="29.333" />
    </Grid>
</controls:PageBase>

查看

namespace MvvmSample
{
    namespace Controls
    {
        public abstract partial class PageBase : Page, IView { }
    }
    namespace Views
    {
        public sealed partial class MainPage : Controls.PageBase
        {
            public MainPage()
            {
                this.InitializeComponent();
            }
        }
    }
    namespace ViewModels
    {
        public class MainPageViewModel : Microsoft.Practices.Prism.Mvvm.ViewModel
        {
            public string Title { get; set; }
            public MainPageViewModel()
            {
                this.Title = "Run Time";
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您使用的是Prism.StoreApps,它是适用于Windows 8.1的软件包。对于UWP,您应该使用Prism.Windows。它在您的计算机上工作的原因是因为Windows 10可以运行Windows 8应用程序。虽然模拟器是特定的SDK构建。

有关适用于Windows 10的可用NuGet包的更多信息(包括依赖注入),请查看official GitHub repothis repo中也提供了一些示例。