mvvm - 移动模拟器上的 Prism-Mvvm 应用程序部署错误

标签 mvvm uwp prism

在 Mobile Emulator 10586 上部署一个简单的 Prism.Mvvm 应用程序时遇到了一个异常,它在模拟器和我的本地机器上都可以工作。
我指的是 Prism.storeapps 包。这是我的代码

应用程序.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);
        }

    }
}

主页.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";
            }
        }
    }
}

最佳答案

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

有关 Windows 10 可用 NuGet 包的更多信息(包括依赖注入(inject)),请查看 official GitHub repo . this repo 中也有一些示例可用.

关于mvvm - 移动模拟器上的 Prism-Mvvm 应用程序部署错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441842/

相关文章:

UWP:无法创建新的 VPN 配置文件

prism - 使用交互请求的自定义弹出窗口的大小

c# - 企业应用本地化

navigation - 如何为 Xamarin.Forms( View )导航堆栈重置 Prism?

c# - 每次在 property getter 中返回新的 ICommand 不好吗?

c# - 属性绑定(bind)没有响应

mvvm - 如何在 AngularJS View 中实现条件逻辑

wpf - 在 MVVM 中构建显示各种页面的菜单的最佳方法是什么?

windows-runtime - 如何更改 Windows 通用应用程序中的标题栏颜色?

.net - sqlite3 的 System.DllNotFoundException