Skip to content

Commit

Permalink
Merge pull request #34 from NeverMorewd/bugfix-showdialog
Browse files Browse the repository at this point in the history
await ShowDialog
  • Loading branch information
NeverMorewd authored Nov 14, 2024
2 parents 2a949d6 + 02186f3 commit 10d7181
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
19 changes: 9 additions & 10 deletions src/Lemon.ModuleNavigation.Avaloniaui/Dialogs/AvaDialogService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,33 +17,33 @@ public void Show(string name,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null)
{
ShowCore(name, null, false, parameters, callback);
ShowCore(name, null, false, parameters, callback).Wait();
}

public void Show(string name,
string windowName,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null)
{
ShowCore(name, windowName, false, parameters, callback);
ShowCore(name, windowName, false, parameters, callback).Wait();
}

public void ShowDialog(string name,
public async Task ShowDialog(string name,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null)
{
ShowCore(name, null, true, parameters, callback);
await ShowCore(name, null, true, parameters, callback);
}

public void ShowDialog(string name,
public async Task ShowDialog(string name,
string windowName,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null)
{
ShowCore(name, windowName, true, parameters, callback);
await ShowCore(name, windowName, true, parameters, callback);
}

private void ShowCore(string name,
private async Task ShowCore(string name,
string? windowName,
bool showDialog,
IDialogParameters? parameters = null,
Expand All @@ -66,8 +66,8 @@ private void ShowCore(string name,
dialogViewModel.OnDialogOpened(parameters);
dialogViewModel.RequestClose += (result) =>
{
dialogWindow.Close();
callback?.Invoke(result);
dialogWindow.Close();
};
dialogWindow.Closed += (s, e) =>
{
Expand All @@ -78,8 +78,7 @@ private void ShowCore(string name,
if (Application.Current!.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime classicDesktop)
{
var owner = classicDesktop.MainWindow!;
// todo
dialogWindow.ShowDialog(owner);
await dialogWindow.ShowDialog(owner);
}
}
else
Expand Down
7 changes: 4 additions & 3 deletions src/Lemon.ModuleNavigation.Sample/ViewModels/MainViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public MainViewModel(IEnumerable<IModule> modules,
_navigationService.RequestViewNavigation("ItemsRegion", viewName, requestNew);
_navigationService.RequestViewNavigation("TransitioningContentRegion", viewName, requestNew);
});
ToDialogCommand = ReactiveCommand.Create<string>(content =>
ToDialogCommand = ReactiveCommand.Create<string>(async content =>
{
var viewName = content;
var showDialog = false;
Expand All @@ -63,10 +63,11 @@ public MainViewModel(IEnumerable<IModule> modules,
};
if (showDialog)
{
_dialogService.ShowDialog(viewName, param, p =>
await _dialogService.ShowDialog(viewName, param, p =>
{
_logger.LogDebug($"close call back:{p}");
_logger.LogDebug($"Call back:{p}");
});
_logger.LogDebug($"ShowDialog over!");
}
else
{
Expand Down
4 changes: 2 additions & 2 deletions src/Lemon.ModuleNavigation/Abstracts/IDialogService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ void Show(string name,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null);

void ShowDialog(string name,
Task ShowDialog(string name,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null);

void ShowDialog(string name,
Task ShowDialog(string name,
string windowName,
IDialogParameters? parameters = null,
Action<IDialogResult>? callback = null);
Expand Down

0 comments on commit 10d7181

Please sign in to comment.