using DevExpress.XtraEditors;
using Yw.WinFrmUI;
namespace PBS.WinFrmUI.WE
{
public partial class EditWaterWEDlg : DevExpress.XtraEditors.XtraForm
{
public EditWaterWEDlg()
{
InitializeComponent();
//this.IconOptions.Icon = WinFrmUI.Properties.Resources.App;
// this.dataLayoutControl1.SetupLayoutControl();
}
///
/// 回调事件
///
public event Func, Task> ReloadDataEvent;
private List _allBindingList;
private PBS.Vmo.WE.ItemVmo _model = null;
private List _allUtensilList = null;
private PBS.Vmo.WE.CatalogueMappingVmo _CatalogueMappingVmo;
//详细信息方法
public async void SetInfoDisplay(ItemViewModel itemView)
{
_allBindingList = new List();
_allUtensilList = await new PBS.BLL.WE.Utensil().GetAll();
this.repositoryItemTreeListLookUpEdit1.DataSource = _allUtensilList;
var allUtensilList = await new PBS.BLL.WE.UtensilMapping().GetByItemID(itemView.ID);
if (allUtensilList != null)
{
foreach (var utensil in allUtensilList)
{
var model = new ItemViewModel();
model.UtensilID = utensil.UtensilID;
model.UtensilCount = utensil.UtensilCount;
model.RatedFlow = utensil.RatedFlow;
model.MinRatedFlow = utensil.MinRatedFlow;
_allBindingList.Add(model);
}
}
this.itemViewModelBindingSource.DataSource = _allBindingList;
this.textEditName.EditValue = itemView.Name;
this.Text = "详细信息";
this.ColDelete.Visible = false;
this.textEditName.Properties.ReadOnly = true;
this.gridView1.SetNormalView();
this.layoutControlItem2.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
this.emptySpaceItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
this.layoutControlItem1.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
}
///
/// 绑定
///
public async void SetBindingData(PBS.Vmo.WE.ItemVmo item, long CatalogueID)
{
_allBindingList = new List();
_allUtensilList = await new PBS.BLL.WE.Utensil().GetAll();
this.repositoryItemTreeListLookUpEdit1.DataSource = _allUtensilList;
if (item == null)
{
_CatalogueMappingVmo = new PBS.Vmo.WE.CatalogueMappingVmo();
_CatalogueMappingVmo.CatalogueID = CatalogueID;
}
else
{
//为编辑做准备
_model = item;
var allUtensilList = await new PBS.BLL.WE.UtensilMapping().GetByItemID(item.ID);
if (allUtensilList != null)
{
foreach (var utensil in allUtensilList)
{
var model = new ItemViewModel();
model.UtensilID = utensil.UtensilID;
model.UtensilCount = utensil.UtensilCount;
model.RatedFlow = utensil.RatedFlow;
model.MinRatedFlow = utensil.MinRatedFlow;
_allBindingList.Add(model);
}
}
this.textEditName.Text = item.Name;
}
this.itemViewModelBindingSource.DataSource = _allBindingList;
}
//验证
private bool Valid()
{
this.dxErrorProvider1.ClearErrors();
if (string.IsNullOrEmpty(this.textEditName.Text.Trim()))
{
this.dxErrorProvider1.SetError(this.textEditName, "必填项");
return false;
}
return true;
}
//确定
private async void btnOk_Click(object sender, EventArgs e)
{
if (!Valid())
return;
if (_allBindingList == null || _allBindingList.Count < 1)
{
TipFormHelper.ShowError("请输入用水器具数据!");
return;
}
if (_model == null)
{
_model = new PBS.Vmo.WE.ItemVmo();
_model.Name = this.textEditName.Text.Trim();
}
else
{
_model.Name = this.textEditName.Text.Trim();
}
var mappingList = new List();
foreach (var item in _allBindingList)
{
var model = new PBS.Vmo.WE.UtensilMappingVmo();
model.UtensilID = item.UtensilID;
model.UtensilCount = item.UtensilCount;
model.RatedFlow = item.RatedFlow;
model.MinRatedFlow = item.MinRatedFlow;
mappingList.Add(model);
}
if (this.ReloadDataEvent == null)
return;
if (!await this.ReloadDataEvent(_model, _CatalogueMappingVmo, mappingList))
{
MessageBoxHelper.ShowError("设置失败!");
return;
}
MessageBoxHelper.ShowSuccess("设置成功!");
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
//删除
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
if (_allBindingList == null || _allBindingList.Count < 1)
return;
var row = this.gridView1.GetCurrentViewModel(_allBindingList);
if (row == null)
return;
if (e.Column == this.ColDelete)
_allBindingList.Remove(row);
this.itemViewModelBindingSource.ResetBindings(false);
}
private void repositoryItemTreeListLookUpEdit1_EditValueChanged(object sender, EventArgs e)
{ // 获取当前选中项的值
TreeListLookUpEdit edit = sender as TreeListLookUpEdit;
if (edit != null && edit.EditValue != null)
{
// 获取选中项的 ID
long selectedID = Convert.ToInt64(edit.EditValue);
var select = _allUtensilList.Find(x => x.ID == selectedID);
if (select != null)
{
gridView1.SetFocusedRowCellValue("RatedFlow", select.RatedFlow);
gridView1.SetFocusedRowCellValue("MinRatedFlow", select.MinRatedFlow);
}
}
}
}
}