如何使用 MvvmCross 在 WPF 应用程序中获取命令行参数?
How to get command line parameters in a WPF application using MvvmCross?
我正在尝试使用 MvvmCross 获取传递到我的 WPF 应用程序的命令行参数。
我想访问我的 MainViewModel 中的参数。
类似于您在 App.xaml.cs
中覆盖 OnStartup() 方法(或为 Startup 事件创建事件处理程序)并在那里使用您的参数进行操作的方式。
我尝试从 MvxApplication<object>
继承我的 App.cs
并使用 MvxNavigationViewModel<object>
作为 MainViewModel 基础 class 像这样:
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();
我正在尝试使用 MvvmCross 获取传递到我的 WPF 应用程序的命令行参数。
我想访问我的 MainViewModel 中的参数。
类似于您在 App.xaml.cs
中覆盖 OnStartup() 方法(或为 Startup 事件创建事件处理程序)并在那里使用您的参数进行操作的方式。
我尝试从 MvxApplication<object>
继承我的 App.cs
并使用 MvxNavigationViewModel<object>
作为 MainViewModel 基础 class 像这样:
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();