DynamicGridMemoColumn.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Windows;
  4. using System.Windows.Data;
  5. using InABox.Core;
  6. using Syncfusion.UI.Xaml.Grid;
  7. namespace InABox.DynamicGrid;
  8. public class DynamicGridMemoColumn<TEntity> : DynamicGridEditorColumn<TEntity,MemoEditor,GridTextColumn>
  9. where TEntity : BaseObject
  10. {
  11. protected override void UpdateBinding(GridTextColumn column)
  12. {
  13. base.UpdateBinding(column);
  14. var prop = CoreUtils.GetProperty<TEntity>(Definition.ColumnName);
  15. var binding = new Binding
  16. {
  17. Path = new PropertyPath(MappingName),
  18. Converter = prop.PropertyType == typeof(string[])
  19. ? new StringArrayConverter()
  20. : null
  21. };
  22. column.DisplayBinding = binding;
  23. column.ValueBinding = binding;
  24. }
  25. protected override void Configure(GridTextColumn column, MemoEditor editor)
  26. {
  27. column.TextWrapping = TextWrapping.NoWrap;
  28. column.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
  29. }
  30. public override bool VariableHeight => true;
  31. public DynamicGridMemoColumn(DynamicGridColumn definition) : base(definition)
  32. {
  33. }
  34. }