namespace Yw.WinFrmUI
|
{
|
public partial class HydroParterSearchListCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public HydroParterSearchListCtrl()
|
{
|
InitializeComponent();
|
this.gridView1.SetNormalView();
|
this.searchControl1.SetSearchSettings(Search, Recover);
|
}
|
|
/// <summary>
|
/// 水力点击事件
|
/// </summary>
|
public event Action<Yw.Model.HydroParterInfo> HydroClickEvent;
|
|
/// <summary>
|
/// 水力查询事件
|
/// </summary>
|
public event Action<List<Yw.Model.HydroParterInfo>> HydroSearchEvent;
|
|
//获取水力信息方法
|
private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
|
//所有绑定列表
|
private List<HydroParterViewModel> _allBindingList = null;
|
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
public void InitialData(Func<Yw.Model.HydroModelInfo> hydroInfoFunc)
|
{
|
_hydroInfoFunc = hydroInfoFunc;
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
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;
|
}
|
var hydroInfo = _hydroInfoFunc?.Invoke();
|
if (hydroInfo == null)
|
{
|
return;
|
}
|
var allParterList = hydroInfo.GetAllParters();
|
var parters = allParterList?.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();
|
_allBindingList = new List<HydroParterViewModel>();
|
if (parters != null && parters.Count > 0)
|
{
|
foreach (var parter in parters)
|
{
|
var vm = new HydroParterViewModel(parter, hydroInfo);
|
_allBindingList.Add(vm);
|
|
}
|
}
|
this.hydroParterViewModelBindingSource.DataSource = _allBindingList;
|
this.hydroParterViewModelBindingSource.ResetBindings(false);
|
this.HydroSearchEvent?.Invoke(_allBindingList?.Select(x => x.Vmo).ToList());
|
}
|
|
//覆盖
|
private void Recover(object sender, EventArgs e)
|
{
|
var hydroInfo = _hydroInfoFunc?.Invoke();
|
if (hydroInfo == null)
|
{
|
return;
|
}
|
this.HydroSearchEvent?.Invoke(null);
|
}
|
|
//行点击事件
|
private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
|
{
|
var row = this.gridView1.GetRow(e.RowHandle) as HydroParterViewModel;
|
if (row == null)
|
{
|
return;
|
}
|
this.HydroClickEvent?.Invoke(row.Vmo);
|
}
|
|
|
}
|
}
|