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(); } } }