ColumnEditEx.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Collections.Generic;
  3. using DevExpress.XtraEditors.Controls;
  4. using DevExpress.XtraEditors.Repository;
  5. namespace SiwiFms.Helper
  6. {
  7. public sealed class ColumnEditEx : RepositoryItemLookUpEdit
  8. {
  9. public ColumnEditEx()
  10. {
  11. }
  12. /// <summary>
  13. /// </summary>
  14. /// <param name="source">数据源</param>
  15. /// <param name="value">值字段</param>
  16. /// <param name="displayName">显示字段</param>
  17. /// <param name="columns">需要显示的列</param>
  18. /// <param name="nullText">空值</param>
  19. /// <param name="autoSearchColumnIndex">以该列作为筛选</param>
  20. /// <param name="textEditStyles">文本编辑模式</param>
  21. /// <param name="searchMode">搜索模式</param>
  22. public ColumnEditEx(object source, string value = "", string displayName = "",
  23. IEnumerable<string> columns = null, string nullText = "", int autoSearchColumnIndex = 0,
  24. TextEditStyles textEditStyles = TextEditStyles.Standard, SearchMode searchMode = SearchMode.OnlyInPopup)
  25. {
  26. if (source.GetType().BaseType == typeof (Enum))
  27. {
  28. value = "Key";
  29. displayName = "Value";
  30. columns = new[] {"Value", "Key"};
  31. source = EnumUtil.EnumToDictionary(source.GetType());
  32. }
  33. DataSource = source;
  34. DisplayMember = displayName;
  35. ValueMember = value;
  36. if (columns != null)
  37. {
  38. Columns.Clear();
  39. foreach (string column in columns)
  40. {
  41. Columns.Add(new LookUpColumnInfo(column));
  42. }
  43. }
  44. AutoSearchColumnIndex = autoSearchColumnIndex;
  45. NullText = nullText;
  46. TextEditStyle = textEditStyles; //要使用户可以输入,这里须设为Standard
  47. SearchMode = searchMode; //自动过滤掉不需要显示的数据,可以根据需要变化
  48. }
  49. }
  50. }