【问题标题】:How to get command line parameters in a WPF application using MvvmCross?如何使用 MvvmCross 在 WPF 应用程序中获取命令行参数?
【发布时间】:2021-07-16 13:59:10
【问题描述】:

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

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

我尝试从MvxApplication<object> 继承我的App.cs 并使用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
    }
}

我该如何正确地做到这一点?

【问题讨论】:

  • Environment.GetCommandLineArgs() 能满足您的需求吗?
  • @RyanThomas 实际上......是的!耽误了我。谢谢!
  • 别担心,我会发布一个答案,以便您接受并且问题已完成:)

标签: c# wpf navigation mvvmcross app-startup


【解决方案1】:

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

var args = Envrionment.GetCommandLineArgs();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 2011-02-24
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多