IMvxMessenger 的 MvvmCross 用法
MvvmCross usage of IMvxMessenger
我想使用 IMvxMessenger 插件,但我无法在我想使用它的地方初始化视图模型。
我的Core.ViewModels
public class DataViewModel : MvxNavigationViewModel
{
protected readonly IMvxMessenger _messenger;
public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
: base(logProvider, navigationService)
{
this._messenger = messenger;
}
}
我的 WPFCore.ViewModels
public class DataViewModel : Core.ViewModels.DataViewModel
{
public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
: base(logProvider, navigationService, messenger)
{}
protected new void SaveDyno()
{
var message = new Core.Models.MvxReloaderMessage(this, this.Dyno);
this._messenger.Publish(message);
}
}
我的 Messenger 模型
public class MvxReloaderMessage
: MvxMessage
{
public DynoModel Dyno
{
get;
private set;
}
public MvxReloaderMessage(object sender, DynoModel dyno)
: base(sender)
{
this.Dyno = dyno;
}
}
错误
“创建 WPFCore.ViewModels.DataViewModel 时无法解析 IMvxMessenger 类型的参数信使的参数。您可以将其作为参数传递”
我也尝试了一些初始化,但它不起作用或显示一些错误;
Mvx.RegisterType<IMvxMessenger, MvxReloaderMessage>();
Mvx.IoCProvider.RegisterSingleton<MvvmCross.Plugin.Messenger.IMvxMessenger>(new Core.Models.MvxReloaderMessage());
Mvx.IoCProvider.Resolve<MvvmCross.Plugin.Messenger.IMvxMessenger>();
请确认插件已加载。您可以通过覆盖 Setup.cs 中的 LoadPlugins
并添加:
来做到这一点
pluginManager.EnsurePluginLoaded<MvvmCross.Plugin.Messenger.Plugin>();
我想使用 IMvxMessenger 插件,但我无法在我想使用它的地方初始化视图模型。
我的Core.ViewModels
public class DataViewModel : MvxNavigationViewModel
{
protected readonly IMvxMessenger _messenger;
public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
: base(logProvider, navigationService)
{
this._messenger = messenger;
}
}
我的 WPFCore.ViewModels
public class DataViewModel : Core.ViewModels.DataViewModel
{
public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
: base(logProvider, navigationService, messenger)
{}
protected new void SaveDyno()
{
var message = new Core.Models.MvxReloaderMessage(this, this.Dyno);
this._messenger.Publish(message);
}
}
我的 Messenger 模型
public class MvxReloaderMessage
: MvxMessage
{
public DynoModel Dyno
{
get;
private set;
}
public MvxReloaderMessage(object sender, DynoModel dyno)
: base(sender)
{
this.Dyno = dyno;
}
}
错误
“创建 WPFCore.ViewModels.DataViewModel 时无法解析 IMvxMessenger 类型的参数信使的参数。您可以将其作为参数传递”
我也尝试了一些初始化,但它不起作用或显示一些错误;
Mvx.RegisterType<IMvxMessenger, MvxReloaderMessage>();
Mvx.IoCProvider.RegisterSingleton<MvvmCross.Plugin.Messenger.IMvxMessenger>(new Core.Models.MvxReloaderMessage());
Mvx.IoCProvider.Resolve<MvvmCross.Plugin.Messenger.IMvxMessenger>();
请确认插件已加载。您可以通过覆盖 Setup.cs 中的 LoadPlugins
并添加:
pluginManager.EnsurePluginLoaded<MvvmCross.Plugin.Messenger.Plugin>();