问题描述
我正在尝试使用 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();