gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:17:29 27 4
gpt4 key购买 nike

我尝试使用 MVVMLight 在我们的 Windows 10 通用应用程序中,但它似乎完全无法工作。我看过这个blog

Nuget downloaded and added a reference to the MVVM Light assemblies

Nuget also added the ViewModelLocator in the Application.Resources.



Application.Resources 中看不到定位器

最佳答案

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

  • 创建一个新的 Windows 10 通用应用程序,例如: MVVMLightUWPApp1
  • 添加对 的引用MVVMLight 使用 NuGet 包管理器
  • 为你的 UWP 应用添加一个文件夹,例如:查看型号
  • 在 ViewModel 文件夹下,添加两个类:主视图型号 查看模型定位器
    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
    }
    }
    }
  • 在 App.xaml 中:
    <Application.Resources>
    <vm:ViewModelLocator xmlns:vm="using:MVVMLightUWPApp1.ViewModel"
    x:Key="Locator" />
    </Application.Resources>
  • 在 View 中,设置 DataContext 如下:
    DataContext="{Binding Main, Source={StaticResource Locator}}"
  • 现在,您可以设置绑定(bind)到 VM,例如:
    <TextBlock Text="{Binding MSG}" FontSize="50" />

  • 好好享受:)

    关于MVVM 灯无法在 Windows 10 通用应用程序中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32186295/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com