DynamicGridComboBoxColumn.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Windows.Data;
  4. using InABox.Core;
  5. using Syncfusion.UI.Xaml.Grid;
  6. namespace InABox.DynamicGrid;
  7. public abstract class DynamicGridComboBoxColumn<TEntity, TEditor> : DynamicGridEditorColumn<TEntity, TEditor, GridComboBoxColumn>
  8. where TEntity : BaseObject
  9. where TEditor : class, ILookupEditor
  10. {
  11. protected override void Configure(GridComboBoxColumn column, TEditor editor)
  12. {
  13. var data = editor.Values(Definition.ColumnName, null);
  14. var items = new List<Tuple<object?, string>>
  15. {
  16. new(null, "")
  17. };
  18. foreach (var row in data.Rows)
  19. items.Add(new(row[data.Columns[0].ColumnName], (row["Display"] ?? "").ToString() ?? ""));
  20. column.SelectedValuePath = "Item1";
  21. column.DisplayMemberPath = "Item2";
  22. column.ItemsSource = items;
  23. column.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
  24. }
  25. protected DynamicGridComboBoxColumn(DynamicGridColumn definition) : base(definition)
  26. {
  27. }
  28. }