I am trying to add a reusable dialog host to my test app. But unfortunately, the app always throws a 'No loaded DialogHost instances.' exception.
The code is very simple.
MainWindow.xaml
<views:MvxWindow
...
>
<materialDesign:DialogHost Identifier="RootDialog" />
</views:MvxWindow>
MainWindow.xaml.cs
public partial class MainWindow : MvxWindow
{
public MainWindow()
{
InitializeComponent();
}
}
App.xaml.cs
public partial class App : MvxApplication
{
protected override void RegisterSetup()
{
this.RegisterSetupType<MvxWpfSetup<Domain.App>>();
}
}
App.cs
public class App : MvxApplication
{
public override void Initialize()
{
...
RegisterAppStart<DashboardViewModel>();
}
}
DashboardView.xaml
<views:MvxWpfView
...
>
...
<Button Content="ShowDialog"
Click="OnClick_ShowDialogAsync" />
...
</views:MvxWpfView>
DashboardView.xaml.cs
public partial class DashboardView : MvxWpfView
{
public HomeView()
{
InitializeComponent();
}
private async void OnClick_ShowDialogAsync(object sender, RoutedEventArgs e)
{
var view = new SampleDialog
{
DataContext = new SampleDialogViewModel()
};
await DialogHost.Show(view, "RootDialog", ExtendedOpenedEventHandler, ExtendedClosingEventHandler);
}
...
}
But when I put this line:
<materialDesign:DialogHost Identifier="RootDialog" />
inside the DashboardView.xaml it works fine.
What am I missing?