refactor: use custom view locator to create new window/dialog (#1216)

Signed-off-by: leo <longshuang@msn.cn>
(cherry picked from commit 3e6f2b25f15b263e2b84922abc5cf6d621d62a83)
This commit is contained in:
leo 2025-04-21 14:44:02 +08:00
parent 86113701f3
commit 750ca8ec61
No known key found for this signature in database
15 changed files with 158 additions and 164 deletions

View file

@ -22,22 +22,20 @@ namespace SourceGit.Views
}
}
private async void OpenStatistics(object _, RoutedEventArgs e)
private void OpenStatistics(object _, RoutedEventArgs e)
{
if (DataContext is ViewModels.Repository repo && TopLevel.GetTopLevel(this) is Window owner)
if (DataContext is ViewModels.Repository repo)
{
var dialog = new Statistics() { DataContext = new ViewModels.Statistics(repo.FullPath) };
await dialog.ShowDialog(owner);
App.ShowWindow(new ViewModels.Statistics(repo.FullPath), true);
e.Handled = true;
}
}
private async void OpenConfigure(object sender, RoutedEventArgs e)
private void OpenConfigure(object sender, RoutedEventArgs e)
{
if (DataContext is ViewModels.Repository repo && TopLevel.GetTopLevel(this) is Window owner)
if (DataContext is ViewModels.Repository repo)
{
var dialog = new RepositoryConfigure() { DataContext = new ViewModels.RepositoryConfigure(repo) };
await dialog.ShowDialog(owner);
App.ShowWindow(new ViewModels.RepositoryConfigure(repo), true);
e.Handled = true;
}
}
@ -129,12 +127,11 @@ namespace SourceGit.Views
e.Handled = true;
}
private async void OpenGitLogs(object sender, RoutedEventArgs e)
private void OpenGitLogs(object sender, RoutedEventArgs e)
{
if (DataContext is ViewModels.Repository repo && TopLevel.GetTopLevel(this) is Window owner)
if (DataContext is ViewModels.Repository repo)
{
var dialog = new ViewLogs() { DataContext = new ViewModels.ViewLogs(repo) };
await dialog.ShowDialog(owner);
App.ShowWindow(new ViewModels.ViewLogs(repo), true);
e.Handled = true;
}
}