using System;
using System.Collections.Generic;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
namespace SiwiFms.Helper
{
public sealed class ColumnEditEx : RepositoryItemLookUpEdit
{
public ColumnEditEx()
{
}
///
///
/// 数据源
/// 值字段
/// 显示字段
/// 需要显示的列
/// 空值
/// 以该列作为筛选
/// 文本编辑模式
/// 搜索模式
public ColumnEditEx(object source, string value = "", string displayName = "",
IEnumerable columns = null, string nullText = "", int autoSearchColumnIndex = 0,
TextEditStyles textEditStyles = TextEditStyles.Standard, SearchMode searchMode = SearchMode.OnlyInPopup)
{
if (source.GetType().BaseType == typeof (Enum))
{
value = "Key";
displayName = "Value";
columns = new[] {"Value", "Key"};
source = EnumUtil.EnumToDictionary(source.GetType());
}
DataSource = source;
DisplayMember = displayName;
ValueMember = value;
if (columns != null)
{
Columns.Clear();
foreach (string column in columns)
{
Columns.Add(new LookUpColumnInfo(column));
}
}
AutoSearchColumnIndex = autoSearchColumnIndex;
NullText = nullText;
TextEditStyle = textEditStyles; //要使用户可以输入,这里须设为Standard
SearchMode = searchMode; //自动过滤掉不需要显示的数据,可以根据需要变化
}
}
}