|
@@ -2015,31 +2015,30 @@ namespace InABox.DynamicGrid
|
|
|
else if (prop.Editor is ILookupEditor lookupEditor)
|
|
|
{
|
|
|
var lookupcol = new GridComboBoxColumn();
|
|
|
-
|
|
|
- //var lookups = editor.Values(column.ColumnName).ToDictionary(column.ColumnName, "Display");
|
|
|
- //lookupcol.SelectedValuePath = "Key";
|
|
|
- //lookupcol.DisplayMemberPath = "Value";
|
|
|
- //lookupcol.ItemsSource = lookups;
|
|
|
-
|
|
|
- var table = lookupEditor.Values(column.ColumnName).ToDataTable();
|
|
|
- //var row = table.NewRow();
|
|
|
- //row["Display"] = "";
|
|
|
- //table.Rows.InsertAt(row, 0);
|
|
|
-
|
|
|
- var data = lookupEditor.Values(column.ColumnName);
|
|
|
|
|
|
- var items = new List<Tuple<object?, string>>();
|
|
|
- if (!lookupEditor.IsEnumEditor())
|
|
|
+ if (lookupEditor.IsEnumEditor())
|
|
|
+ {
|
|
|
+ // For some reason this code works for enums, and the other code works for other things but not enums.
|
|
|
+ // So we are doing this.
|
|
|
+ var lookups = lookupEditor.Values(column.ColumnName).ToDataTable();
|
|
|
+ lookupcol.SelectedValuePath = lookups.Columns[0].ColumnName;
|
|
|
+ lookupcol.DisplayMemberPath = "Display";
|
|
|
+ lookupcol.ItemsSource = lookups.DefaultView;
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
+ var data = lookupEditor.Values(column.ColumnName);
|
|
|
+
|
|
|
+ var items = new List<Tuple<object?, string>>();
|
|
|
items.Add(new(null, ""));
|
|
|
+ foreach (var row in data.Rows)
|
|
|
+ items.Add(new(row[data.Columns[0].ColumnName], (row["Display"] ?? "").ToString() ?? ""));
|
|
|
+
|
|
|
+ lookupcol.SelectedValuePath = "Item1";
|
|
|
+ lookupcol.DisplayMemberPath = "Item2";
|
|
|
+ lookupcol.ItemsSource = items;
|
|
|
+ lookupcol.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
|
|
|
}
|
|
|
- foreach(var row in data.Rows)
|
|
|
- items.Add(new(row[data.Columns[0].ColumnName], (row["Display"] ?? "").ToString() ?? ""));
|
|
|
-
|
|
|
- lookupcol.SelectedValuePath = "Item1";
|
|
|
- lookupcol.DisplayMemberPath = "Item2";
|
|
|
- lookupcol.ItemsSource = items;
|
|
|
- lookupcol.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
|
|
|
|
|
|
newcol = lookupcol;
|
|
|
}
|
|
@@ -2946,7 +2945,7 @@ namespace InABox.DynamicGrid
|
|
|
return changes;
|
|
|
}
|
|
|
|
|
|
- protected virtual void OnAfterEditorValueChanged(DynamicEditorGrid grid, T[] items, String columnnname, Dictionary<String, object?> changes)
|
|
|
+ protected virtual void OnAfterEditorValueChanged(DynamicEditorGrid grid, T[] items, String columnname, Dictionary<String, object?> changes)
|
|
|
{
|
|
|
}
|
|
|
|