DynamicGridMemoColumn.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. column.Padding = new Thickness(2);
  25. }
  26. protected override void Configure(GridTextColumn column, MemoEditor editor)
  27. {
  28. column.TextWrapping = TextWrapping.Wrap;
  29. column.UpdateTrigger = UpdateSourceTrigger.PropertyChanged;
  30. }
  31. public override bool VariableHeight => true;
  32. public DynamicGridMemoColumn(DynamicGridColumn definition) : base(definition)
  33. {
  34. }
  35. }