#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
}
}