|
@@ -31,6 +31,13 @@ namespace InABox.DynamicGrid
|
|
|
None
|
|
|
}
|
|
|
|
|
|
+ public enum DynamicTreeGridExpandMode
|
|
|
+ {
|
|
|
+ All,
|
|
|
+ Root,
|
|
|
+ None
|
|
|
+ }
|
|
|
+
|
|
|
public delegate void OnSelectItem(CoreTreeNode node);
|
|
|
|
|
|
public delegate void OnContextMenuOpening(CoreTreeNode node, ContextMenu menu);
|
|
@@ -106,6 +113,30 @@ namespace InABox.DynamicGrid
|
|
|
};
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public DynamicTreeGridExpandMode ExpandMode
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return _tree.AutoExpandMode switch
|
|
|
+ {
|
|
|
+ AutoExpandMode.AllNodesExpanded => DynamicTreeGridExpandMode.All,
|
|
|
+ AutoExpandMode.RootNodesExpanded => DynamicTreeGridExpandMode.Root,
|
|
|
+ _ => DynamicTreeGridExpandMode.None
|
|
|
+ };
|
|
|
+ }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ _tree.AutoExpandMode = value switch
|
|
|
+ {
|
|
|
+ DynamicTreeGridExpandMode.All => AutoExpandMode.AllNodesExpanded,
|
|
|
+ DynamicTreeGridExpandMode.Root => AutoExpandMode.RootNodesExpanded,
|
|
|
+ _ => AutoExpandMode.None
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public Guid SelectedID => (_tree?.SelectedItem as CoreTreeNode)?.ID ?? Guid.Empty;
|
|
|
|
|
|
/*public double RowHeight
|
|
|
{
|
|
@@ -128,11 +159,11 @@ namespace InABox.DynamicGrid
|
|
|
_tree.ChildPropertyName = "Children";
|
|
|
//_tree.ParentPropertyName = "Parent";
|
|
|
_tree.AutoGenerateColumns = false;
|
|
|
- _tree.AutoExpandMode = AutoExpandMode.AllNodesExpanded;
|
|
|
//_tree.NodeCollapsing += (o, e) => { e.Cancel = true; };
|
|
|
_tree.HeaderRowHeight = 0D;
|
|
|
_tree.SelectionChanged += (o,e) => OnSelectItem?.Invoke((_tree.SelectedItem as CoreTreeNode)!);
|
|
|
_tree.AllowSelectionOnExpanderClick = false;
|
|
|
+ ExpandMode = DynamicTreeGridExpandMode.All;
|
|
|
|
|
|
_menu = new ContextMenu();
|
|
|
var additem = new MenuItem() { Header = "Add Child Folder" };
|
|
@@ -304,14 +335,8 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
protected virtual bool DoEditItem(T item)
|
|
|
{
|
|
|
- var form = new DynamicEditorForm(typeof(T));
|
|
|
- form.OnEditorValueChanged += (sender, name, value) =>
|
|
|
- {
|
|
|
- CoreUtils.SetPropertyValue(item, name, value);
|
|
|
- return new Dictionary<string, object?>();
|
|
|
- };
|
|
|
- form.Items = new T[] { item };
|
|
|
- return form.ShowDialog() == true;
|
|
|
+ var grid = DynamicGridUtils.CreateDynamicGrid<T>(typeof(DynamicItemsListGrid<>));
|
|
|
+ return grid.EditItems(new T[] { item });
|
|
|
}
|
|
|
|
|
|
protected abstract void DoSaveItem(T item);
|