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;