如何使用 MvvmCross 在 WPF 应用程序中获取命令行参数?

问题描述

我正在尝试使用 MvvmCross 将命令行参数传递给我的 WPF 应用程序。
我想访问 MainViewModel 中的参数。

类似于您如何覆盖 App.xaml.cs 中的 OnStartup() 方法(或为 Startup 事件创建事件处理程序)并在那里处理您的参数。

我尝试从 App.cs 继承我的 MvxApplication<object> 并使用 MvxNavigationViewModel<object> 作为 MainViewModel 基类,如下所示:

public class App : MvxApplication<object>
{
    public override void Initialize()
    {
        #region BulkRegistration

        CreatableTypes()
            .EndingWith("Service")
            .AsInterfaces()
            .RegisterAsLazySingleton();

        #endregion

        #region AppStartRegistration

        RegisterAppStart<MainViewModel,object>();

        #endregion
    }
}

我的 MainViewModel 中的 Prepare(object parameter) 方法从未被调用。

public class MainViewModel : MvxNavigationViewModel<object>
{
    // ...

    public override void Prepare(object parameter)
    {
        // do stuff with parameter
    }
}

我该如何正确执行此操作?

解决方法

无论您是在 ViewModel 中还是在任何地方,您都应该能够使用以下内容。

var args = Envrionment.GetCommandLineArgs();

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...