using DevExpress.Utils.Html; using DevExpress.XtraEditors; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.Entity; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Forms; using XdCxRhDW.App.EditForms; using XdCxRhDW.Repostory.EFContext; using XdCxRhDW.Repostory.Model; namespace XdCxRhDW.App.UserControl { public partial class CtrlTarget : DevExpress.XtraEditors.XtraUserControl { List list = new List(); public CtrlTarget() { InitializeComponent(); } private async void CtrlSat_Load(object sender, EventArgs e) { try { gridTar.Init().UseSort().UseFilter().UseMultiSelect().UseRowNumber(); gridTar.DataSource = list; using (RHDWContext db = new RHDWContext()) { var res = db.TargetInfos.OrderBy(p => p.TargetName).OrderBy(p => p.TargetName); list.AddRange(await res.ToListAsync()); } gridView1.RefreshData(); } catch (Exception ex) { Serilog.Log.Error(ex, "查询目标信息异常"); DxHelper.MsgBoxHelper.ShowError("查询目标信息异常"); } } private void gridView1_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e) { if (gridView1.GetSelectedRows().Any()) { btnDel.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; btnEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Always; } else { btnDel.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; btnEdit.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; } popupMenu1.ShowPopup(MousePosition); } private async void btnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { TargetEditor frm = new TargetEditor(); if (frm.ShowDialog() != DialogResult.OK) return; var addItem = frm.info; using (RHDWContext db = new RHDWContext()) { db.TargetInfos.Add(addItem); await db.SaveChangesAsync(); } list.Add(addItem); gridView1.RefreshData(); } catch (Exception ex) { Serilog.Log.Error(ex, "添加目标信息异常"); DxHelper.MsgBoxHelper.ShowError("添加目标信息异常"); } } private async void btnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { var editItem = gridView1.GetFocusedRow() as TargetInfo; TargetEditor frm = new TargetEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return; editItem = frm.info; using (RHDWContext db = new RHDWContext()) { var find = await db.TargetInfos.Where(p => p.ID == editItem.ID).FirstOrDefaultAsync(); find.TargetName = editItem.TargetName; await db.SaveChangesAsync(); } gridView1.RefreshData(); } catch (Exception ex) { Serilog.Log.Error(ex, "保存目标信息异常"); DxHelper.MsgBoxHelper.ShowError("保存目标信息异常"); } } private async void btnDel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { if (XtraMessageBox.Show("确认删除选择得目标信息?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } var ids = gridView1.GetSelectedRows(); using (RHDWContext db = new RHDWContext()) { foreach (var id in ids) { var item = gridView1.GetRow(id) as TargetInfo; var delItem = await db.TargetInfos.Where(p => p.ID == item.ID).FirstOrDefaultAsync(); if (delItem != null) db.TargetInfos.Remove(delItem); } await db.SaveChangesAsync(); } gridView1.DeleteSelectedRows(); } catch (Exception ex) { Serilog.Log.Error(ex, "删除目标信息异常"); DxHelper.MsgBoxHelper.ShowError("删除目标信息异常"); } } private void gridView1_CustomDrawEmptyForeground(object sender, DevExpress.XtraGrid.Views.Base.CustomDrawEventArgs e) { if (gridView1.RowCount == 0) { string txt = "右键添加目标"; var s = e.Appearance.CalcTextSize(e.Cache, txt, e.Bounds.Width).ToSize(); var x = (e.Bounds.Width - s.Width) / 2; var y = (e.Bounds.Height - s.Height) / 2; e.Appearance.ForeColor = Color.Gray; e.Appearance.DrawString(e.Cache, txt, new Rectangle(x, y, s.Width, s.Height)); } } } }