MVVM light 无法在 Windows 10 通用应用程序中工作

2024-02-17

我尝试使用MVVM轻量级在我们的 Windows 10 通用应用程序中,但它似乎完全无法工作。我见过这个blog http://blog.galasoft.ch/posts/2015/03/using-mvvmlight-with-windows-10-universal-applications/

Nuget 下载并添加了对 MVVM Light 程序集的引用

Nuget还在Application.Resources中添加了ViewModelLocator。

看不到定位器Application.Resources


您需要手动创建ViewModelLocator,请按照以下步骤操作:

  1. 创建一个新的 Windows 10 通用应用程序,例如:MVVMLightUWPApp1
  2. 添加参考MVVM轻量级 using NuGet 包管理器
  3. 为您的 UWP 应用添加一个文件夹,例如:视图模型
  4. Under the ViewModel folder, add two classes: MainViewModel and ViewModelLocator enter image description here

在 MainViewModel.cs 中:

namespace MVVMLightUWPApp1.ViewModel
{
    public class MainViewModel
    {
        public string MSG { get; set; }
        public MainViewModel()
        {
            MSG = "Test Message";
        }
    }
}

在 ViewModelLocator.cs 中:

namespace MVVMLightUWPApp1.ViewModel
{
    public class ViewModelLocator
    {/// <summary>
     /// Initializes a new instance of the ViewModelLocator class.
     /// </summary>
        public ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            ////if (ViewModelBase.IsInDesignModeStatic)
            ////{
            ////    // Create design time view services and models
            ////    SimpleIoc.Default.Register<IDataService, DesignDataService>();
            ////}
            ////else
            ////{
            ////    // Create run time view services and models
            ////    SimpleIoc.Default.Register<IDataService, DataService>();
            ////}

            SimpleIoc.Default.Register<MainViewModel>();
        }

        public MainViewModel Main
        {
            get
            {
                return ServiceLocator.Current.GetInstance<MainViewModel>();
            }
        }

        public static void Cleanup()
        {
            // TODO Clear the ViewModels
        }
    }
}
  1. 在 App.xaml 中:

    <Application.Resources>
       <vm:ViewModelLocator xmlns:vm="using:MVVMLightUWPApp1.ViewModel"
                                   x:Key="Locator" />
    </Application.Resources>
    
  2. 在View中,设置DataContext如下:

    DataContext="{Binding Main, Source={StaticResource Locator}}"
    
  3. 现在,您可以设置与VM的绑定,例如:

    <TextBlock Text="{Binding MSG}" FontSize="50" />
    

好好享受:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVVM light 无法在 Windows 10 通用应用程序中工作 的相关文章

  • Windows 10 中的 gacutil.exe 在哪里?

    我有Windows 10 专业版 64 位 微软视觉工作室 2015和完整的 Windows 10 SDK 包 but 我找不到 gacutil exe in Microsoft Visual Studio 2015 子目录 Windows
  • MVVM 在 ASP.NET MVC 4 Web 应用程序中扮演什么角色?

    当我正在阅读 ASP NET MVC 4 这本书时 我对 MVVM 感到好奇 我开始谷歌搜索 找不到任何关于使用 MVVM 开发 Web 应用程序的书籍 所以我一定在这里遗漏了一些信息 据我了解 MVVM是通过knockout js和其他框
  • HidDevice.FromIdAsync 通过读写返回 null

    我正在尝试将库从经典桌面移植到 UWP 除了一件事之外 一切都按计划进行 当我尝试打开与设备 Wiimote 的 HID 连接时 如果权限处于读写状态 它将无法连接 它确实适用于只读权限 可能是什么问题呢 清单中的权限已设置为正确的值 编辑
  • 为什么需要更改 IE 设置才能在 Windows 10 上启用 HTTP/2?

    我最近在我正在开发的网站上启用了 HTTP 2 为了做到这一点 我必须 使用 Windows 10 使用支持 HTTP 2 的浏览器 在我的例子中是 Chrome 配置我的 Web 服务器 iis express 以使用 https 为网站
  • 在使用实体框架的分层架构中,我应该从 BLL 返回 POCO 类吗? (需要架构指导)

    我可能读得太多了 并且遭受了一些信息超载的困扰 所以我希望得到一些明确的指导 根据我收集的信息 我可以使用 VS2010 的 T4 模板来生成不直接与 EF 绑定的 POCO 类 我会将这些放在他们自己的项目中 而我的 DAL 将有一个 O
  • WPF 将枚举列表(或类似的)绑定到复选框列表

    我想将复选框列表绑定到 WPF 中的枚举值集合 枚举不是 Flags 语境 它用于过滤数据网格 其中每个项目都有我的枚举的一个实例 它不一定需要绑定到列表 固定大小的集合也可以 假设您想绑定到枚举的所有可能值 您可以使用对象数据提供者 ht
  • Powershell从Linux客户端连接到Windows远程

    我正在尝试从我的 Linux 工作站远程连接到 Windows 计算机 我在 Arch Linux 工作站上安装了 powershell 目前正在尝试连接到主机 在主机上 Enable PSRemoting 然后允许所有主机Set Item
  • 使用绑定的 UWP 应用程序显示/隐藏按钮

    我有一个列表视图 其中显示项目名称和每个项目的一些按钮 这些按钮执行不同的操作 例如添加评论查看该项目的图像等 根据项目的不同 某些项目有时会禁用其中一些按钮 并且有些按钮在某些项目中将不可见 因此 我想在这段代码中使用数据绑定来实现两件事
  • 如何将 XML 中的数据添加到列表<>?

    我尝试从 xml 文件中读取数据 但它非常笨拙 而且我获得的很多数据都是从孩子那里获取的 我将姓名 年龄等信息集中在一起 因此无法将其添加到列表中 我的 xml 文件如下所示
  • 更改 UWP 应用的目标设备

    我希望我的 Windows UWP 应用程序仅针对特定设备 例如桌面和移动设备 如何指定我的应用程序应仅针对这些设备 我没有发现任何感兴趣的内容Package appxmanifest文件 以及project json仅指定应用程序应使用的
  • Windows 10:如何防止切换或关闭应用程序

    我正在为 Windows 10 设备开发一个应用程序 该设备将在公共场所暴露给用户 并且其硬件按钮将无法访问 如何防止用户使用触摸屏手势关闭我的应用程序 使用分配的访问权限设置您的应用程序 http www winbeta org news
  • Android Compose MVVM - 如何在不带参数的 Composable 函数中引用 viewModel 对象?

    将如何 Composable ContentFeed 函数访问viewModel哪个是在活动中创建的 依赖注入 或者这是一种错误的做事方式 这viewModel应该始终只有一个实例 MainActivity kt class MainAct
  • 将 MVVM 与 Knockout.js 结合使用时在服务器端定义模型

    我计划在客户端使用 knockout js 和 MVVM 模式来构建单页应用程序 因此模型 视图模型将在客户端定义 我对如何在服务器端构建感到困惑 现在 控制器会返回域模型本身吗 从域模型到 ViewModel 的所有映射仅发生在客户端吗
  • UWP/C#:ObservableCollection 就地排序(不滚动)

    在 UWP 应用程序中 我尝试对ObservableCollection绑定到一个ListView 所以collection OrderBy 创建一个新集合 不是一个选项 到目前为止 我使用了这种扩展方法 public static voi
  • 如何在Xamarin.Forms中将多个页面的BindingContext设置为同一个ViewModel?

    我是 Xamarin Forms 新手 我想使用 MVVM 模式和 XAML 创建一个跨平台应用程序 在我的表单项目 pcl 中 我想设置绑定上下文 of my MainPage以及将来的多个页面到同一个 ViewModel 这可能吗 让我
  • WPF 组合框如果只有 1 项则自动选择

    我有一个组合框 我绑定到一个可观察的集合 它会发生变化 根据选择的公司 并且大量公司将有一个帐户 项目 因此我想知道制作组合框的最佳方法是什么如果 ItemsSource 中只有 1 个项目 则设置 SelectedItem 否则将其保留为
  • 如何将 ObservableCollection 绑定到 AvalonDock DocumentPaneGroup?

    我需要在 AvalonDock 2 0 中加载项目集合作为文档 这些对象继承自一个抽象类 我想根据哪个子类在文档中渲染一个框架 这是我的 XAML
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 使用node.js安装xml2json时出错

    我尝试为 node js 安装 xml2json 包 但它给了我错误 Error are as below 我的系统配置如下 Node js 版本 v5 4 1 npm 版本 3 3 12 操作系统 Windows 10 64 位 pyth

随机推荐