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">
-
+