using DevExpress.XtraEditors;
using System;
using System.Windows.Forms;
namespace IStation.WinFrmUI.Basic
{
public partial class EditEnumSignalTypeDlg : DevExpress.XtraEditors.XtraForm
{
public EditEnumSignalTypeDlg()
{
InitializeComponent();
this.IconOptions.Icon = WinFrmUI.Properties.Resources.App;
this.dataLayoutControl1.SetupLayoutControl();
}
///
/// 验证识别标识的唯一性
///
public event Func ValidIdentifierUniqueEvent;
///
/// 返回数据事件
///
public event Action ReloadDataEvent;
private Model.SignalType _model = null;//当前操作对象
///
/// 绑定数据
///
public void SetBindingData(Model.SignalType rhs)
{
this.Text = "编辑枚举信号类型";
_model = new Model.SignalType(rhs);
this.NameTextEdit.EditValue = rhs.Name;
this.IdentifierTextEdit.EditValue = rhs.Identifier;
this.TagNameTextEdit.EditValue = rhs.TagName;
this.setEnumValueSettingsCtrl1.Set(rhs.ValueSettings);
this.DescriptionMemoEdit.EditValue = rhs.Description;
}
//验证
private bool Valid()
{
this.dxErrorProvider1.ClearErrors();
if (string.IsNullOrEmpty(this.NameTextEdit.Text.Trim()))
{
this.dxErrorProvider1.SetError(this.NameTextEdit, "必填项");
return false;
}
var identifier = this.IdentifierTextEdit.Text.Trim();
if (string.IsNullOrEmpty(identifier))
{
this.dxErrorProvider1.SetError(this.IdentifierTextEdit, "必填项");
return false;
}
if (this.ValidIdentifierUniqueEvent != null)
{
if (!this.ValidIdentifierUniqueEvent(_model.Id, identifier))
{
this.dxErrorProvider1.SetError(this.IdentifierTextEdit, "标识重复");
return false;
}
}
if (!this.setEnumValueSettingsCtrl1.Valid(out string msg))
{
XtraMessageBox.Show(msg);
return false;
}
return true;
}
private void btnOK_Click(object sender, EventArgs e)
{
if (!Valid())
return;
_model.Name = this.NameTextEdit.Text.Trim();
_model.Identifier = this.IdentifierTextEdit.Text.Trim();
_model.TagName = this.TagNameTextEdit.Text.Trim();
_model.ValueSettings = this.setEnumValueSettingsCtrl1.Get();
_model.Description = this.DescriptionMemoEdit.Text.Trim();
var bll = new BLL.Scatl.SignalType();
if (!bll.Update(_model))
{
XtraMessageBox.Show("更新失败");
return;
}
if (this.ReloadDataEvent != null)
{
var model = bll.GetById(_model.Id);
this.ReloadDataEvent.Invoke(model);
}
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}