using DevExpress.DataAccess.DataFederation; using DevExpress.Utils.Extensions; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ips.Library.Basic; namespace Ips.Library.DxpLib { public static class ImageComboBoxEditExtensions { public static ImageComboBoxEdit AddEnumTopList(this ImageComboBoxEdit source, params TEnum[] topItems) where TEnum : struct, Enum { TEnum[] values = Enum.GetValues(); if (topItems.IsNotNullOrEmpty()) { values = values.OrderByDescending(m => topItems.Contains(m)).ToArray(); } return AddEnumList(source, values); } public static ImageComboBoxEdit AddEnumList(this ImageComboBoxEdit source, params TEnum[] values) where TEnum : struct, Enum { source.Properties.Items.BeginUpdate(); try { int num = 0; foreach (TEnum val in values) { source.Properties.Items.Add(new ImageComboBoxItem(EnumDisplayTextHelper.GetDisplayText(val), val, num++)); } } finally { source.Properties.Items.EndUpdate(); } return source; } } }