diff --git a/src/MainDemo.Wpf/DataGrids.xaml b/src/MainDemo.Wpf/DataGrids.xaml index 81b2017efc..208cd5a1cf 100644 --- a/src/MainDemo.Wpf/DataGrids.xaml +++ b/src/MainDemo.Wpf/DataGrids.xaml @@ -184,6 +184,58 @@ CanUserAddRows="False" ItemsSource="{Binding Items4}" /> + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/MainDemo.Wpf/DataGrids.xaml.cs b/src/MainDemo.Wpf/DataGrids.xaml.cs index f250fe93e3..cb06091dff 100644 --- a/src/MainDemo.Wpf/DataGrids.xaml.cs +++ b/src/MainDemo.Wpf/DataGrids.xaml.cs @@ -6,7 +6,7 @@ public partial class DataGrids { public DataGrids() { - DataContext = new ListsAndGridsViewModel(); + DataContext = new ListsAndGridsViewModel(MainWindow.Snackbar.MessageQueue!); InitializeComponent(); } } diff --git a/src/MainDemo.Wpf/Domain/ListsAndGridsViewModel.cs b/src/MainDemo.Wpf/Domain/ListsAndGridsViewModel.cs index 6aaa31e81f..176263add6 100644 --- a/src/MainDemo.Wpf/Domain/ListsAndGridsViewModel.cs +++ b/src/MainDemo.Wpf/Domain/ListsAndGridsViewModel.cs @@ -1,12 +1,17 @@ using System.Collections.ObjectModel; +using CommunityToolkit.Mvvm.Input; using MaterialDesignDemo.Shared.Domain; +using MaterialDesignThemes.Wpf; namespace MaterialDesignDemo.Domain; -public class ListsAndGridsViewModel : ViewModelBase +public partial class ListsAndGridsViewModel : ViewModelBase { - public ListsAndGridsViewModel() + private readonly ISnackbarMessageQueue _snackbarMessageQueue; + + public ListsAndGridsViewModel(ISnackbarMessageQueue snackbarMessageQueue) { + _snackbarMessageQueue = snackbarMessageQueue; Items1 = CreateData(); Items2 = CreateData(); Items3 = CreateData(); @@ -21,7 +26,7 @@ public ListsAndGridsViewModel() }; } - Files = new List(); + Files = []; for (int i = 0; i < 1000; i++) { @@ -56,8 +61,8 @@ private static void SelectAll(bool select, IEnumerable mode private static ObservableCollection CreateData() { - return new ObservableCollection - { + return + [ new SelectableViewModel { Code = 'M', @@ -77,7 +82,7 @@ private static ObservableCollection CreateData() Name = "Predator", Description = "If it bleeds, we can kill it" } - }; + ]; } public ObservableCollection Items1 { get; } @@ -85,9 +90,21 @@ private static ObservableCollection CreateData() public ObservableCollection Items3 { get; } public ObservableCollection Items4 { get; } - public IEnumerable Foods => new[] { "Burger", "Fries", "Shake", "Lettuce" }; + public IEnumerable Foods => ["Burger", "Fries", "Shake", "Lettuce"]; public IList Files { get; } - public IEnumerable SelectionUnits => new[] { DataGridSelectionUnit.FullRow, DataGridSelectionUnit.Cell, DataGridSelectionUnit.CellOrRowHeader }; + public IEnumerable SelectionUnits => [DataGridSelectionUnit.FullRow, DataGridSelectionUnit.Cell, DataGridSelectionUnit.CellOrRowHeader]; + + [RelayCommand] + private void EditItem(SelectableViewModel item) + => _snackbarMessageQueue.Enqueue($"Editing {item.Name}"); + + [RelayCommand] + private void DuplicateItem(SelectableViewModel item) + => _snackbarMessageQueue.Enqueue($"Duplicating {item.Name}"); + + [RelayCommand] + private void DeleteItem(SelectableViewModel item) + => _snackbarMessageQueue.Enqueue($"Deleting {item.Name}"); } diff --git a/src/MainDemo.Wpf/Lists.xaml.cs b/src/MainDemo.Wpf/Lists.xaml.cs index 6ce03fd6df..148257a4eb 100644 --- a/src/MainDemo.Wpf/Lists.xaml.cs +++ b/src/MainDemo.Wpf/Lists.xaml.cs @@ -6,7 +6,7 @@ public partial class Lists { public Lists() { - DataContext = new ListsAndGridsViewModel(); + DataContext = new ListsAndGridsViewModel(MainWindow.Snackbar.MessageQueue!); InitializeComponent(); } } diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml index fb0e3a3216..221d0a6282 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DataGrid.xaml @@ -259,12 +259,16 @@ BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" /> - + + @@ -381,7 +385,7 @@ RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> @@ -489,7 +493,9 @@ BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding wpf:DataGridAssist.CornerRadius}" SnapsToDevicePixels="True"> - +