ImageComboBoxEditExtensions.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using DevExpress.DataAccess.DataFederation;
  2. using DevExpress.Utils.Extensions;
  3. using DevExpress.XtraEditors;
  4. using DevExpress.XtraEditors.Controls;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using Ips.Library.Basic;
  11. namespace Ips.Library.DxpLib
  12. {
  13. public static class ImageComboBoxEditExtensions
  14. {
  15. public static ImageComboBoxEdit AddEnumTopList<TEnum>(this ImageComboBoxEdit source, params TEnum[] topItems) where TEnum : struct, Enum
  16. {
  17. TEnum[] values = Enum.GetValues<TEnum>();
  18. if (topItems.IsNotNullOrEmpty())
  19. {
  20. values = values.OrderByDescending(m => topItems.Contains(m)).ToArray();
  21. }
  22. return AddEnumList<TEnum>(source, values);
  23. }
  24. public static ImageComboBoxEdit AddEnumList<TEnum>(this ImageComboBoxEdit source, params TEnum[] values) where TEnum : struct, Enum
  25. {
  26. source.Properties.Items.BeginUpdate();
  27. try
  28. {
  29. int num = 0;
  30. foreach (TEnum val in values)
  31. {
  32. source.Properties.Items.Add(new ImageComboBoxItem(EnumDisplayTextHelper.GetDisplayText(val), val, num++));
  33. }
  34. }
  35. finally
  36. {
  37. source.Properties.Items.EndUpdate();
  38. }
  39. return source;
  40. }
  41. }
  42. }