From 0e6a08860a9b17ad435f7462027af2d3a698bb88 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 3 Jun 2024 10:06:23 +0800 Subject: [PATCH] ux: use DataGrid instead of ChangeCollectionView for changes in INFORMATION page --- src/Views/CommitDetail.axaml | 56 ++++++++++++++++++++------------- src/Views/CommitDetail.axaml.cs | 32 ++++++++++--------- 2 files changed, 51 insertions(+), 37 deletions(-) diff --git a/src/Views/CommitDetail.axaml b/src/Views/CommitDetail.axaml index 9783c086..0231ef08 100644 --- a/src/Views/CommitDetail.axaml +++ b/src/Views/CommitDetail.axaml @@ -25,28 +25,40 @@ - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/src/Views/CommitDetail.axaml.cs b/src/Views/CommitDetail.axaml.cs index 84cb8381..75806e59 100644 --- a/src/Views/CommitDetail.axaml.cs +++ b/src/Views/CommitDetail.axaml.cs @@ -1,5 +1,5 @@ using Avalonia.Controls; -using Avalonia.Interactivity; +using Avalonia.Input; namespace SourceGit.Views { @@ -10,31 +10,33 @@ namespace SourceGit.Views InitializeComponent(); } - private void OnChangeListContextRequested(object sender, ContextRequestedEventArgs e) + private void OnChangeListDoubleTapped(object sender, TappedEventArgs e) { - if (DataContext is ViewModels.CommitDetail vm && sender is ChangeCollectionView view) + if (DataContext is ViewModels.CommitDetail detail) { - var selected = view.SelectedChanges; - if (selected != null && selected.Count == 1) - { - var menu = vm.CreateChangeContextMenu(selected[0]); - view.OpenContextMenu(menu); - } + var datagrid = sender as DataGrid; + detail.ActivePageIndex = 1; + detail.SelectedChanges = new () { datagrid.SelectedItem as Models.Change }; } + e.Handled = true; } - private void OnChangeDoubleTapped(object sender, RoutedEventArgs e) + private void OnChangeListContextRequested(object sender, ContextRequestedEventArgs e) { - if (DataContext is ViewModels.CommitDetail vm && sender is ChangeCollectionView view) + if (DataContext is ViewModels.CommitDetail detail) { - var selected = view.SelectedChanges; - if (selected != null && selected.Count == 1) + var datagrid = sender as DataGrid; + if (datagrid.SelectedItem == null) { - vm.ActivePageIndex = 1; - vm.SelectedChanges = new() { selected[0] }; + e.Handled = true; + return; } + + var menu = detail.CreateChangeContextMenu(datagrid.SelectedItem as Models.Change); + datagrid.OpenContextMenu(menu); } + e.Handled = true; } }