#region
using System;
using System.ComponentModel;
using System.Data;
using System.Drawing.Design;
using System.Windows.Forms;
using DevExpress.XtraEditors;
#endregion
namespace CSFrameworkV5.Library.UserControls
{
///
/// 编号-标题自定义控件.
///
public partial class ucValueEdit : UserControl
{
private DataTable _ItemsData;
private string[] _ItemsValue = { };
private string _Seperator = "-";
public ucValueEdit()
{
InitializeComponent();
_ItemsData = new DataTable();
_ItemsData.Columns.Add("Value", typeof(string));
_ItemsData.Columns.Add("Name", typeof(string));
_InnerLookUpEdit.Properties.DisplayMember = "Name";
_InnerLookUpEdit.Properties.ValueMember = "Value";
_InnerLookUpEdit.Properties.DataSource = _ItemsData;
}
[Category("Appearance")]
[Description("嵌套的LookUpEdit控件")]
public LookUpEdit InnerLookupEdit => _InnerLookUpEdit;
[DesignerSerializationVisibility(
DesignerSerializationVisibility.Content)]
[Editor("System.Windows.Forms.Design.StringArrayEditor, System.Design",
typeof(UITypeEditor))]
[Category("Appearance")]
[Description("自定义数据列表.如: A - 类型A ")]
public string[] Items
{
get => _ItemsValue;
set => SetItems(value);
}
[DefaultValue("-")]
[Description("值与显示名称中间的分隔符.如:A - 类型A")]
public string ItemValueSeperator
{
get => _Seperator;
set => _Seperator = value;
}
private void RefreshDataSource()
{
_InnerLookUpEdit.Properties.DataSource = null;
_InnerLookUpEdit.Properties.DataSource = _ItemsData;
}
///
/// 将String[]转换为DataTable
///
///
private void SetItems(string[] values)
{
_ItemsValue = values;
_ItemsData.Rows.Clear();
if (values.Length == 0) return;
string[] P;
foreach (var item in values)
{
var V = "";
var N = "";
if (item.Trim() != "")
{
P = item.Split(char.Parse(_Seperator));
V = P.Length >= 1 ? P[0] : "";
N = P.Length == 2 ? P[1] : "";
}
_ItemsData.Rows.Add(V, N);
}
RefreshDataSource();
}
private void ucValueEdit_Load(object sender, EventArgs e)
{
SetItems(_ItemsValue);
}
private void ucValueEdit_SizeChanged(object sender, EventArgs e)
{
_InnerLookUpEdit.Width = Width;
Height = _InnerLookUpEdit.Height;
}
}
}