Ich versuche, die Mahapps-Dialogfelder in meinem Projekt zu verwenden, konnte sie jedoch nicht durch einen ReactivUI-Befehl in meinem ViewModel ausführen.Im XAML der Ansicht Ich habe den Dialog registriert.Probleme beim Anzeigen eines Mahapps.Metro-Dialogfelds mit einem ReactiveU-Befehl
xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
dialogs:DialogParticipation.Register="{Binding}"
Ich habe auch eine Schaltfläche, die an den ShowDialog-Befehl gebunden ist.
this.BindCommand(viewModel, vm => vm.ShowDialog, x => x.button);
schließlich in meinem Viewmodel habe ich den RxUI Befehl und die dialogcoordinator Instanz festgelegt.
public MainWindowViewModel(IDialogCoordinator dialogCoordinator)
{
_dialogCoordinator = dialogCoordinator;
ShowDialog = ReactiveCommand.CreateFromTask(async() =>
{
await _dialogCoordinator.ShowMessageAsync(this, "Message from VM", "MVVM based dialogs!");
});
ShowDialog.ThrownExceptions.Subscribe(ex => Console.WriteLine(ex.ToString()));
}
Egal, was ich versucht habe es immer die gleichen Fehler werfen, die
istSystem.InvalidOperationException: Context is not registered. Consider using DialogParticipation.Register in XAML to bind in the DataContext.
Ich bin nicht sicher, ob es etwas nötig ist sonst den Dialog zu arbeiten oder wenn ich gerade bin mit die Befehle in RxUI falsch
Funktioniert es mit warten DialogCoordinator.Instance.ShowMessageAsync (dies "Nachricht von VM", "MVVM-basierte Dialoge!"); ? – mm8
@ mm8 Es gibt mir immer noch den gleichen Fehler. – TheAquam
Wie stellen Sie dann den DataContext der Sicht ein? – mm8