【问题标题】:.NET Framework 4.7 to .NET 5 Migration with Galasoft MVVMLight Library使用 Galasoft MVVMLight 库从 .NET Framework 4.7 迁移到 .NET 5
【发布时间】:2021-09-18 22:53:17
【问题描述】:

我们正在将 WPF 应用程序迁移到 .NET 5。

今天我们在使用 名为 MVVMLight 的 Galasoft 库时遇到了一些问题。我们看到 .NET Standard 没有更新。我们不能使用 a.e. EventToCommand 班级。

您知道我们可以管理哪些选项吗?

【问题讨论】:

    标签: .net wpf mvvm mvvm-light .net-5


    【解决方案1】:

    常规的MVVMLightMVVMLightLibs NuGet 包与.NET 5 不兼容,它们仅与.NET Framwork 和其他一些平台兼容。但是,.NET Standard 1.0 有专门的包,它们也适用于 .NET 5。

    您可以在官方 MVVMLight 网页here 上阅读有关这些版本的更多信息。请注意,此版本不支持IServiceProvider 接口。

    SimpleIoc 组件使用的一个特定接口 IServiceProvider 在 .NET Standard 1.0 中不可用。 [...] ServiceLocator 类不再可用。

    这会影响 SimpleIoC,您必须改为通过静态 SimpleIoc.Default 成员。

    // OLD var nav = ServiceLocator.Current.GetInstance<INavigationService>();
    // NEW
    var nav = SimpleIoc.Default.GetInstance<INavigationService>();
    

    如果您正在搜索EventToCommand 的替换,另一种方法是使用XamlBehaviors for WPF。这是 Microsoft 的一个库,用于替换旧的 Blend 行为。

    您可以安装 NuGet 包Microsoft.Xaml.Behaviors.Wpf,它与.NET Framework、.NET Core 和.NET 5 兼容。与EventToCommand 等效的还有InvokeCommandAction

    【讨论】:

      猜你喜欢
      • 2022-08-12
      • 2021-03-20
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 2022-01-11
      • 1970-01-01
      相关资源
      最近更新 更多