using Yw.Untity;
|
|
namespace HStation.WinFrmUI
|
{
|
/// <summary>
|
/// 选择标签列表面板
|
/// </summary>
|
public partial class SelectFlagsPopupCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public SelectFlagsPopupCtrl()
|
{
|
InitializeComponent();
|
}
|
|
/// <summary>
|
/// 返回值事件
|
/// </summary>
|
public event Action<List<string>> CheckedChangedEvent;
|
|
public List<string> SelectedFlags;
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData<T>()
|
{
|
var flags = ConstStringHelper.GetValues<T>();
|
this.selectFlagsCtrl1.SetBindingData(flags);
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData<T>(List<string> cekFlags = null)
|
{
|
var sysFlags = ConstStringHelper.GetValues<T>();
|
this.SelectedFlags = cekFlags?.ToList();
|
if (SelectedFlags != null && SelectedFlags.Count() > 0)
|
this.popupContainerEdit1.Text = FlagsHelper.ToString(SelectedFlags);
|
this.selectFlagsCtrl1.SetBindingData(sysFlags, cekFlags);
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData(List<string> sysFlags = null, List<string> cekFlags = null)
|
{
|
this.SelectedFlags = cekFlags?.ToList();
|
if (SelectedFlags != null && SelectedFlags.Count() > 0)
|
this.popupContainerEdit1.Text = FlagsHelper.ToString(SelectedFlags);
|
this.selectFlagsCtrl1.SetBindingData(sysFlags, cekFlags);
|
}
|
|
private void popupContainerEdit1_QueryResultValue(object sender, DevExpress.XtraEditors.Controls.QueryResultValueEventArgs e)
|
{
|
this.SelectedFlags = this.selectFlagsCtrl1.GetFlags();
|
if (this.SelectedFlags != null && SelectedFlags.Count > 0)
|
{
|
this.popupContainerEdit1.Text = FlagsHelper.ToString(this.SelectedFlags);
|
}
|
this.CheckedChangedEvent?.Invoke(this.SelectedFlags);
|
}
|
|
//自定义显示
|
private void popupContainerEdit1_CustomDisplayText(object sender, DevExpress.XtraEditors.Controls.CustomDisplayTextEventArgs e)
|
{
|
if (this.SelectedFlags != null && SelectedFlags.Count > 0)
|
{
|
e.DisplayText = FlagsHelper.ToString(this.SelectedFlags);
|
}
|
else
|
{
|
e.DisplayText = string.Empty;
|
}
|
}
|
}
|
}
|