12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using System;
- using System.Collections.Generic;
- using System.Windows.Data;
- using InABox.Core;
- using Syncfusion.UI.Xaml.Grid;
- using Syncfusion.UI.Xaml.TreeGrid;
- namespace InABox.DynamicGrid;
- public abstract class DynamicGridComboBoxColumn<TEntity, TEditor> : DynamicGridEditorColumn<TEntity, TEditor, GridComboBoxColumn, TreeGridComboBoxColumn>
- where TEntity : BaseObject
- where TEditor : class, ILookupEditor
- {
- private List<Tuple<object?, string>> GetData(TEditor editor)
- {
- var data = editor.Values(typeof(TEntity), Definition.ColumnName, null);
- var items = new List<Tuple<object?, string>>
- {
- new(null, "")
- };
- foreach (var row in data.Rows)
- items.Add(new(row[data.Columns[0].ColumnName], (row["Display"] ?? "").ToString() ?? ""));
- return items;
- }
- protected override void Configure(GridComboBoxColumn column, TEditor editor)
- {
- column.SelectedValuePath = "Item1";
- column.DisplayMemberPath = "Item2";
- column.ItemsSource = GetData(editor);
- column.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
- }
- protected override void Configure(TreeGridComboBoxColumn column, TEditor editor)
- {
- column.SelectedValuePath = "Item1";
- column.DisplayMemberPath = "Item2";
- column.ItemsSource = GetData(editor);
- column.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
- }
- protected DynamicGridComboBoxColumn(DynamicGridColumn definition) : base(definition)
- {
- }
- }
|