using DevExpress.XtraEditors.Controls;
using System.Collections.Generic;
using System.Windows.Forms;
using Yw.Untity;
namespace HStation.WinFrmUI
{
///
/// 选择Flags控件
///
public partial class SelectFlagsCtrl : DevExpress.XtraEditors.XtraUserControl
{
public SelectFlagsCtrl()
{
InitializeComponent();
}
//绑定数据
public void SetBindingData(List sysFlags = null, List cekFlags = null)
{
this.clbFlags.Items.Clear();
if (sysFlags != null)
{
this.clbFlags.Items.AddRange(sysFlags.ToArray());
}
if (cekFlags != null)
{
foreach (CheckedListBoxItem item in this.clbFlags.Items)
item.CheckState = (cekFlags.IndexOf(item.Value.ToString()) > -1) ? CheckState.Checked : CheckState.Unchecked;
List customFlags = null;
if (sysFlags != null)
customFlags = cekFlags.FindAll(x => !sysFlags.Contains(x));
else
customFlags = cekFlags;
if (customFlags != null && customFlags.Count > 0)
this.CustomFlagsTextEdit.EditValue = FlagsHelper.ToString(customFlags);
}
}
///
/// 验证
///
public bool Valid()
{
//临时
var flags = this.CustomFlagsTextEdit.Text.Trim();
if (!string.IsNullOrEmpty(flags))
{
var list = FlagsHelper.ToList(flags);
if (list == null)
{
this.dxErrorProvider1.SetError(this.CustomFlagsTextEdit, "格式错误");
return false;
}
}
return true;
}
///
/// 获取数据
///
public List GetFlags()
{
var list = new List();
foreach (CheckedListBoxItem item in this.clbFlags.Items)
{
if (item.CheckState == CheckState.Checked)
list.Add(item.Value.ToString());
}
var custom = this.CustomFlagsTextEdit.Text.Trim();
var flags = FlagsHelper.ToList(custom);
if (flags != null)
list.AddRange(flags);
if (list.Count < 1)
return default;
return list;
}
}
}