|
@@ -1,12 +1,11 @@
|
|
|
using System;
|
|
|
using System.ComponentModel;
|
|
|
using System.Linq;
|
|
|
-using System.Linq.Expressions;
|
|
|
using System.Runtime.CompilerServices;
|
|
|
using System.Windows;
|
|
|
using System.Windows.Controls;
|
|
|
-using System.Windows.Forms;
|
|
|
using InABox.Clients;
|
|
|
+using InABox.Configuration;
|
|
|
using InABox.Core;
|
|
|
using InABox.Wpf;
|
|
|
using Syncfusion.Data;
|
|
@@ -22,6 +21,11 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
Entity[] Items(IColumns? columns = null);
|
|
|
}
|
|
|
+
|
|
|
+ public class MultiSelectDialogSettings : BaseObject, IUserConfigurationSettings
|
|
|
+ {
|
|
|
+ public DynamicGridSelectedFilterSettings Filters { get; set; } = new();
|
|
|
+ }
|
|
|
|
|
|
public class MultiSelectDialog<T> : IMultiSelectDialog where T : Entity, IRemotable, IPersistent, new()
|
|
|
{
|
|
@@ -34,7 +38,7 @@ namespace InABox.DynamicGrid
|
|
|
private readonly Button ClearButton;
|
|
|
private readonly Button OKButton;
|
|
|
private ThemableWindow? window;
|
|
|
-
|
|
|
+
|
|
|
public MultiSelectDialog() : this(null, null)
|
|
|
{
|
|
|
}
|
|
@@ -42,6 +46,7 @@ namespace InABox.DynamicGrid
|
|
|
//public MultiSelectDialog(Filter<T> filter, Expression<Func<T, object>>[] columns, bool multiselect = true) : base()
|
|
|
public MultiSelectDialog(Filter<T>? filter, Columns<T>? columns, bool multiselect = true)
|
|
|
{
|
|
|
+
|
|
|
_filter = filter;
|
|
|
|
|
|
grid = new Grid();
|
|
@@ -55,7 +60,7 @@ namespace InABox.DynamicGrid
|
|
|
grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(80.0F, GridUnitType.Pixel) });
|
|
|
|
|
|
datagrid = new DynamicDataGrid<T>();
|
|
|
-
|
|
|
+
|
|
|
datagrid.Reconfigure(options =>
|
|
|
{
|
|
|
options.BeginUpdate();
|
|
@@ -67,7 +72,7 @@ namespace InABox.DynamicGrid
|
|
|
options.EndUpdate();
|
|
|
});
|
|
|
datagrid.Reconfigure();
|
|
|
-
|
|
|
+
|
|
|
datagrid.OnReload += Grid_OnReload;
|
|
|
datagrid.OnDoubleClick += Grid_DoubleClick;
|
|
|
datagrid.ColumnsTag = "MSD";
|
|
@@ -86,6 +91,14 @@ namespace InABox.DynamicGrid
|
|
|
datagrid.AddHiddenColumn(col.ToString());
|
|
|
}
|
|
|
|
|
|
+ var _settings = new UserConfiguration<MultiSelectDialogSettings>(datagrid.GetTag()).Load();
|
|
|
+ datagrid.FilterComponent.SetSettings(_settings.Filters,false);
|
|
|
+ datagrid.FilterComponent.OnFiltersSelected += (settings) =>
|
|
|
+ {
|
|
|
+ var _settings = new MultiSelectDialogSettings() { Filters = settings };
|
|
|
+ new UserConfiguration<MultiSelectDialogSettings>(datagrid.GetTag()).Save(_settings);
|
|
|
+ };
|
|
|
+
|
|
|
datagrid.SetValue(Grid.RowProperty, 0);
|
|
|
datagrid.SetValue(Grid.ColumnProperty, 0);
|
|
|
datagrid.SetValue(Grid.ColumnSpanProperty, 4);
|