#region using System; using System.Collections; using System.Data; using CSFrameworkV5.Core; using DevExpress.XtraGrid.Views.Grid; #endregion namespace CSFrameworkV5.Library.CommonClass { /// /// Dev GridView代理类 /// public class DevGridView : ISummaryView { private GridView _view; /// /// 构造器 /// /// GridView控件 public DevGridView(GridView view) { _view = view; } #region ISummaryView Members /// /// GridView控件 /// public object View => _view; public void ExportData(string format, string file) { if (format == "XLS") _view.ExportToXls(file); if (format == "PDF") _view.ExportToPdf(file); } /// /// 记录数 /// public int RowCount => _view.RowCount; /// /// 当前选中的资料行 /// public int FocusedRowHandle { get => _view.FocusedRowHandle; set => _view.FocusedRowHandle = value; } /// /// 数据源 /// public object DataSource { get => _view.GridControl.DataSource; set { _view.GridControl.DataSource = null; _view.GridControl.DataSource = value; } } /// /// 获取指定资料行 /// /// 资料行索引 /// public DataRow GetDataRow(int rowHandle) { return _view.GetDataRow(rowHandle); } /// /// 刷新数据源,重新显示数据 /// public void RefreshDataSource() { _view.GridControl.RefreshDataSource(); } public void MoveFirst() { _view.MoveFirst(); } public void MovePrior() { _view.MovePrev(); } public void MoveNext() { _view.MoveNext(); } public void MoveLast() { _view.MoveLast(); } public void SetFocus() { if (_view.GridControl.CanFocus) _view.GridControl.Focus(); } public void BindingDoubleClick(EventHandler eventHandler) { _view.DoubleClick += eventHandler; } /// /// 资料行索引是否有效 /// /// 资料行索引 /// public bool IsValidRowHandle(int rowHandle) { return _view.IsValidRowHandle(rowHandle); } /// /// 刷新资料行的数据 /// /// 资料行索引 public void RefreshRow(int rowHandle) { _view.RefreshRow(rowHandle); } public void RemoveRow(int rowHandle) { if (_view.IsValidRowHandle(rowHandle)) { var row = _view.GetDataRow(rowHandle); if (_view.GridControl.DataSource is DataTable) { var dt = _view.GridControl.DataSource as DataTable; dt.Rows.Remove(row); //删除数据源的记录 dt.AcceptChanges(); } else if (_view.GridControl.DataSource is IList) { var dt = _view.GridControl.DataSource as IList; dt.Remove(row); //删除数据源的记录 } else { _view.DeleteRow(rowHandle); //删除视图的记录 } } } #endregion } }