|
@@ -32,18 +32,40 @@ public class DynamicGridCustomColumnsComponent<T>
|
|
|
|
|
|
public DynamicGridColumns LoadColumns()
|
|
|
{
|
|
|
- var tag = GetTag();
|
|
|
-
|
|
|
- var user = Task.Run(() => new UserConfiguration<DynamicGridColumns>(tag).Load());
|
|
|
- user.Wait();
|
|
|
-
|
|
|
- var global = Task.Run(() => new GlobalConfiguration<DynamicGridColumns>(tag).Load());
|
|
|
- global.Wait();
|
|
|
- //Task.WaitAll(user, global);
|
|
|
- var columns = user.Result.Any() ? user.Result : global.Result;
|
|
|
-
|
|
|
- //if (!columns.Any())
|
|
|
- // GenerateColumns(columns); //override this to provide specific columns on startup
|
|
|
+ DynamicGridColumns uvc = null;
|
|
|
+ DynamicGridColumns udc = null;
|
|
|
+ DynamicGridColumns gvc = null;
|
|
|
+ DynamicGridColumns gdc = null;
|
|
|
+ var tasks = new Task[]
|
|
|
+ {
|
|
|
+ Task.Run(() => uvc = new UserConfiguration<DynamicGridColumns>(GetTag(false)).Load()),
|
|
|
+ Task.Run(() => udc = new UserConfiguration<DynamicGridColumns>(GetTag(true)).Load()),
|
|
|
+ Task.Run(() => gvc = new GlobalConfiguration<DynamicGridColumns>(GetTag(false)).Load()),
|
|
|
+ Task.Run(() => gdc = new GlobalConfiguration<DynamicGridColumns>(GetTag(true)).Load())
|
|
|
+
|
|
|
+ };
|
|
|
+ Task.WaitAll(tasks);
|
|
|
+ var columns = Grid.IsDirectEditMode()
|
|
|
+ ? udc?.Any() == true
|
|
|
+ ? udc
|
|
|
+ : gdc?.Any() == true
|
|
|
+ ? gdc
|
|
|
+ : uvc?.Any() == true
|
|
|
+ ? uvc
|
|
|
+ : gvc ?? new DynamicGridColumns()
|
|
|
+ : uvc?.Any() == true
|
|
|
+ ? uvc
|
|
|
+ : gvc ?? new DynamicGridColumns();
|
|
|
+
|
|
|
+ // var user = Task.Run(() => new UserConfiguration<DynamicGridColumns>(tag).Load());
|
|
|
+ // user.Wait();
|
|
|
+ // var global = Task.Run(() => new GlobalConfiguration<DynamicGridColumns>(tag).Load());
|
|
|
+ // global.Wait();
|
|
|
+ // //Task.WaitAll(user, global);
|
|
|
+ // var columns = user.Result.Any() ? user.Result : global.Result;
|
|
|
+
|
|
|
+ // if (!columns.Any())
|
|
|
+ // GenerateColumns(columns); //override this to provide specific columns on startup
|
|
|
|
|
|
var removes = columns.Where(x => x is null || string.IsNullOrWhiteSpace(x.ColumnName) || DatabaseSchema.Property(typeof(T), x.ColumnName) == null || GetColumnEditor(x) is NullEditor)
|
|
|
.ToArray();
|
|
@@ -77,7 +99,7 @@ public class DynamicGridCustomColumnsComponent<T>
|
|
|
|
|
|
public void SaveColumns(DynamicGridColumns columns)
|
|
|
{
|
|
|
- var tag = GetTag();
|
|
|
+ var tag = GetTag(Grid.IsDirectEditMode());
|
|
|
new UserConfiguration<DynamicGridColumns>(tag).Save(columns);
|
|
|
}
|
|
|
|
|
@@ -96,13 +118,11 @@ public class DynamicGridCustomColumnsComponent<T>
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private string GetTag()
|
|
|
+ private string GetTag(bool directedit)
|
|
|
{
|
|
|
var tag = Tag ?? typeof(T).Name;
|
|
|
- if (Grid.IsDirectEditMode())
|
|
|
- {
|
|
|
+ if (directedit)
|
|
|
tag += ":DirectEdit";
|
|
|
- }
|
|
|
return tag;
|
|
|
}
|
|
|
|
|
@@ -133,7 +153,7 @@ public class DynamicGridCustomColumnsComponent<T>
|
|
|
|
|
|
private void UpdateDefaultColumnsClick(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
- var tag = GetTag();
|
|
|
+ var tag = GetTag(Grid.IsDirectEditMode());
|
|
|
new GlobalConfiguration<DynamicGridColumns>(tag).Save(Grid.VisibleColumns);
|
|
|
new UserConfiguration<DynamicGridColumns>(tag).Delete();
|
|
|
Grid.Refresh(true, true);
|