|
@@ -29,9 +29,9 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
public class DynamicDataGrid<TEntity> : DynamicGrid<TEntity>, IDynamicDataGrid where TEntity : Entity, IRemotable, IPersistent, new()
|
|
|
{
|
|
|
- public delegate bool FilterSelected(CoreFilterDefinition filter);
|
|
|
+ public delegate bool FilterSelectedHandler(CoreFilterDefinition filter);
|
|
|
|
|
|
- public event FilterSelected OnFilterSelected;
|
|
|
+ public event FilterSelectedHandler OnFilterSelected;
|
|
|
|
|
|
public delegate void OnReloadEventHandler(object sender, Filters<TEntity> criteria, Columns<TEntity> columns, ref SortOrder<TEntity>? sortby);
|
|
|
|
|
@@ -711,6 +711,31 @@ namespace InABox.DynamicGrid
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ protected virtual void FilterSelected(CoreFilterDefinition filter)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void DoFilterSelected(CoreFilterDefinition filter)
|
|
|
+ {
|
|
|
+ FilterSelected(filter);
|
|
|
+ OnFilterSelected?.Invoke(filter);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SelectFilter(CoreFilterDefinition? filter, bool refresh)
|
|
|
+ {
|
|
|
+ SelectedFilter = filter != null
|
|
|
+ ? new(filter.Name, Serialization.Deserialize<Filter<TEntity>>(filter.Filter))
|
|
|
+ : null;
|
|
|
+ Bitmap image = SelectedFilter != null
|
|
|
+ ? Wpf.Resources.filter_set
|
|
|
+ : Wpf.Resources.filter;
|
|
|
+ String text = SelectedFilter?.Item1 ?? "";
|
|
|
+ UpdateButton(FilterBtn, image.AsBitmapImage(), text);
|
|
|
+ if (refresh)
|
|
|
+ Refresh(false, true);
|
|
|
+ }
|
|
|
+
|
|
|
private void Filter_Click(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
var tag = (sender as MenuItem)?.Tag;
|
|
@@ -721,15 +746,14 @@ namespace InABox.DynamicGrid
|
|
|
SelectedFilter = new(filter.Name, Serialization.Deserialize<Filter<TEntity>>(filter.Filter));
|
|
|
image = Wpf.Resources.filter_set;
|
|
|
text = filter.Name;
|
|
|
- OnFilterSelected?.Invoke(filter);
|
|
|
-
|
|
|
+ DoFilterSelected(filter);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
SelectedFilter = null;
|
|
|
image = Wpf.Resources.filter;
|
|
|
text = "";
|
|
|
- OnFilterSelected?.Invoke(new CoreFilterDefinition());
|
|
|
+ DoFilterSelected(null);
|
|
|
}
|
|
|
UpdateButton(FilterBtn, image.AsBitmapImage(), text);
|
|
|
Refresh(false, true);
|
|
@@ -927,5 +951,15 @@ namespace InABox.DynamicGrid
|
|
|
{
|
|
|
UpdateButton(FilterBtn, image.AsBitmapImage(), text);
|
|
|
}
|
|
|
+
|
|
|
+ public void UpdateFilterButton(string text)
|
|
|
+ {
|
|
|
+ UpdateFilterButton(String.IsNullOrWhiteSpace(text)
|
|
|
+ ? Wpf.Resources.filter_set
|
|
|
+ : Wpf.Resources.filter,
|
|
|
+ text
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|