I want to use the IMvxMessenger Plugin, but i cant initialize a viewmodel where I want to use it.
public class DataViewModel : MvxNavigationViewModel
{
protected readonly IMvxMessenger _messenger;
public DataViewModel(IMvxLogProvider logProvider, IMvxNavigationService navigationService, IMvxMessenger messenger)
: base(logProvider, navigationService)
{
this._messenger = messenger;
}
}
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);
}
}
public class MvxReloaderMessage
: MvxMessage
{
public DynoModel Dyno
{
get;
private set;
}
public MvxReloaderMessage(object sender, DynoModel dyno)
: base(sender)
{
this.Dyno = dyno;
}
}
"Failed to resolve parameter for parameter messenger of type IMvxMessenger when creating WPFCore.ViewModels.DataViewModel. You may pass it as an argument"
I also tried some Initialization, but it doesnt work or show some errors;
Mvx.RegisterType<IMvxMessenger, MvxReloaderMessage>();
Mvx.IoCProvider.RegisterSingleton<MvvmCross.Plugin.Messenger.IMvxMessenger>(new Core.Models.MvxReloaderMessage());
Mvx.IoCProvider.Resolve<MvvmCross.Plugin.Messenger.IMvxMessenger>();
Please make sure the plugin has been loaded. You can do that by overriding LoadPlugins
in Setup.cs and add:
pluginManager.EnsurePluginLoaded<MvvmCross.Plugin.Messenger.Plugin>();