From e2009b465a9df33e844d73cac1d198c575fc4688 Mon Sep 17 00:00:00 2001 From: Jayaleshwari N Date: Thu, 10 Jul 2025 12:50:50 +0530 Subject: [PATCH] Sample updated with SfEntry --- DataGridMAUI/Helpers/SfEntry.cs | 43 +++++++++++++++++ DataGridMAUI/MainPage.xaml | 30 +++++++++--- DataGridMAUI/ViewModel/GradeSheetViewModel.cs | 46 +++++++++++++++---- 3 files changed, 104 insertions(+), 15 deletions(-) create mode 100644 DataGridMAUI/Helpers/SfEntry.cs diff --git a/DataGridMAUI/Helpers/SfEntry.cs b/DataGridMAUI/Helpers/SfEntry.cs new file mode 100644 index 0000000..4b821b0 --- /dev/null +++ b/DataGridMAUI/Helpers/SfEntry.cs @@ -0,0 +1,43 @@ +using Microsoft.Maui.Platform; +#if ANDROID +using Android.Content.Res; +#endif + +namespace DataGridMAUI +{ + public class SfEntry : Entry + { + public SfEntry() + { +#if ANDROID + Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("NoUnderline", (h, v) => + { + if (v is Entry) + { + h.PlatformView.BackgroundTintList = ColorStateList.ValueOf(Colors.Transparent.ToPlatform()); + } + }); +#endif +#if WINDOWS + Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("NoUnderline", (h, v) => + { + if (v is Entry) + { + h.PlatformView.BorderThickness = new Microsoft.UI.Xaml.Thickness(0); + h.PlatformView.Padding = new Microsoft.UI.Xaml.Thickness(0, 10, 0, 0); + h.PlatformView.Resources["TextControlBorderThemeThicknessFocused"] = new Microsoft.UI.Xaml.Thickness(0); + } + }); +#endif +#if MACCATALYST || IOS + Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("NoUnderline", (h, v) => + { + if (v is Entry) + { + h.PlatformView.BorderStyle = UIKit.UITextBorderStyle.None; + } + }); +#endif + } + } +} diff --git a/DataGridMAUI/MainPage.xaml b/DataGridMAUI/MainPage.xaml index fe03d48..798ab37 100644 --- a/DataGridMAUI/MainPage.xaml +++ b/DataGridMAUI/MainPage.xaml @@ -82,13 +82,29 @@ - - + + + + diff --git a/DataGridMAUI/ViewModel/GradeSheetViewModel.cs b/DataGridMAUI/ViewModel/GradeSheetViewModel.cs index 1ba03ba..694fc79 100644 --- a/DataGridMAUI/ViewModel/GradeSheetViewModel.cs +++ b/DataGridMAUI/ViewModel/GradeSheetViewModel.cs @@ -327,6 +327,7 @@ private void PopuplateColumnNames() GridColumnsForGroup.AddRange(GridColumns); GridColumnsForSort.AddRange(GridColumns); GridColumns.RemoveAt(0); + GridColumnsForFilter.Remove(GridColumnsForFilter.FirstOrDefault(o => o.Name == "StudentID")); SelectedColumn = GridColumnsForFilter.FirstOrDefault(); SelectedGroupColumn = GridColumnsForGroup.FirstOrDefault(); SelectedSortColumn = GridColumnsForSort.FirstOrDefault(); @@ -439,14 +440,24 @@ private void ExecuteClearSorts() { if (SortColumnDescriptions == null) return; - SortColumnDescriptions.Clear(); + SortColumnDescriptions.Clear(); + + SelectedSortColumn = null; + + Application.Current?.Dispatcher.Dispatch(() => + { + IsOpenForSortColumns = false; + }); } private void ExecuteAddSorting() { - ExecuteClearSorts(); - var sortColumnDescription = new SortColumnDescription() { ColumnName = this.SelectedSortColumn.Name, SortDirection = IsOnState ? ListSortDirection.Ascending : ListSortDirection.Descending }; - SortColumnDescriptions.Add(sortColumnDescription); + if (SelectedSortColumn != null) + { + SortColumnDescriptions.Clear(); + var sortColumnDescription = new SortColumnDescription() { ColumnName = this.SelectedSortColumn.Name, SortDirection = IsOnState ? ListSortDirection.Ascending : ListSortDirection.Descending }; + SortColumnDescriptions.Add(sortColumnDescription); + } } // Grouping @@ -458,14 +469,24 @@ private void ExecuteClearGroups() { if (GroupColumnDescriptions == null) return; - GroupColumnDescriptions.Clear(); + GroupColumnDescriptions.Clear(); + + SelectedGroupColumn = null; + + Application.Current?.Dispatcher.Dispatch(() => + { + IsOpenForGroupColumns = false; + }); } private void ExecuteAddGrouping() { - ExecuteClearGroups(); - var groupColumnDescription = new GroupColumnDescription() { ColumnName = this.SelectedGroupColumn.Name }; - GroupColumnDescriptions.Add(groupColumnDescription); + if (SelectedGroupColumn != null) + { + GroupColumnDescriptions.Clear(); + var groupColumnDescription = new GroupColumnDescription() { ColumnName = this.SelectedGroupColumn.Name }; + GroupColumnDescriptions.Add(groupColumnDescription); + } } // Show/Hide columns @@ -507,7 +528,13 @@ private void ExecuteShowAllColumns() // Filtering private void ExecuteClearFilter() { + SelectedCondition = string.Empty; + SelectedColumn = null; FilterText = string.Empty; + Application.Current?.Dispatcher.Dispatch(() => + { + IsOpenForFilterColumns = false; + }); } private void ExecuteFilterColumns() @@ -522,6 +549,9 @@ private void ExecuteFilterColumns() /// true or false value public bool FilerRecords(object o) { + if (SelectedColumn == null && string.IsNullOrEmpty(this.SelectedCondition)) + return true; + double res; bool checkNumeric = double.TryParse(this.FilterText, out res); var item = o as Grade;