namespace Yw.WinFrmUI
{
public partial class HydroVisualSearchListCtrl : DevExpress.XtraEditors.XtraUserControl
{
public HydroVisualSearchListCtrl()
{
InitializeComponent();
this.layoutControl1.SetupLayoutControl();
this.gridView1.SetNormalView();
this.searchControl1.SetSearchSettings(Search, Recover);
}
///
/// 水力点击信息事件
///
public event Action HydroClickInfoEvent;
///
/// 水力点击视图事件
///
public event Action HydroClickViewEvent;
///
/// 水力查询信息事件
///
public event Action> HydroSearchInfoEvent;
///
/// 水力查询视图事件
///
public event Action> HydroSearchViewEvent;
//所有数据
private List _allList = null;
//所有绑定列表
private List _allBindingList = null;
///
/// 初始化数据
///
public void InitialData(List allVisualViewModelList)
{
_allList = allVisualViewModelList;
}
///
/// 绑定数据
///
public void SetBindingData(string content)
{
this.searchControl1.EditValue = content;
Search(null, null);
}
//查询
private void Search(object sender, EventArgs e)
{
var condition = this.searchControl1.Text.Trim();
if (string.IsNullOrEmpty(condition))
{
return;
}
_allBindingList = _allList;
_allBindingList = _allBindingList?.Where(x => (!string.IsNullOrEmpty(x.Code) && x.Code.Contains(condition))
|| (!string.IsNullOrEmpty(x.Name) && x.Name.Contains(condition))
|| (!string.IsNullOrEmpty(x.Catalog) && x.Catalog.Contains(condition))
|| (!string.IsNullOrEmpty(x.ModelType) && x.ModelType.Contains(condition))
).ToList();
if (_allBindingList == null)
{
_allBindingList = new List();
}
this.hydroVisualViewModelBindingSource.DataSource = _allBindingList;
this.hydroVisualViewModelBindingSource.ResetBindings(false);
this.HydroSearchInfoEvent?.Invoke(_allBindingList.Select(x => x.Vmo).ToList());
this.HydroSearchViewEvent?.Invoke(_allBindingList.ToList());
}
//覆盖
private void Recover(object sender, EventArgs e)
{
_allBindingList = new List();
this.hydroVisualViewModelBindingSource.DataSource = _allBindingList;
this.hydroVisualViewModelBindingSource.ResetBindings(false);
this.HydroSearchInfoEvent?.Invoke(null);
this.HydroSearchViewEvent?.Invoke(null);
}
//行点击事件
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
var row = this.gridView1.GetRow(e.RowHandle) as HydroVisualViewModel;
if (row == null)
{
return;
}
this.HydroClickInfoEvent?.Invoke(row.Vmo);
this.HydroClickViewEvent?.Invoke(row);
}
}
}