GridControl
基本设置
https://blog.csdn.net/fangyu723/article/details/129987808
gridView1.OptionsView.ShowGroupPanel = false;//隐藏
gridView1.OptionsView.ShowIndicator = false;// 最左边空白列
gridView1.OptionsSelection.EnableAppearanceFocusedRow = true;
gridView1.OptionsBehavior.Editable = false;//设置列的数据不能编辑
gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;//选中列的颜色跟着改变
gridView1.OptionsView.EnableAppearanceEvenRow = true;//偶数行颜色变化
gridView1.Appearance.EvenRow.BackColor = System.Drawing.Color.AliceBlue;//偶数行颜色设置
gridView1.OptionsView.AllowHtmlDrawGroups = true;
gridView1.PopulateColumns();
傻瓜式操作
var lis = new List<T_StationAddress>();
gcStationAddress.DataSource = bindinglis;
//对bindinglis做各种操作
//做完之后再执行:gcStationAddress.DataSource = bindinglis;
数据绑定模式
普通的DataSoure绑定
public Form1
{
BindingList<T_StationAddress> StationAddress = new BindingList<T_StationAddress>();
gcStationAddress.DataSource = StationAddress;
//可简单写为
gcStationAddress.DataSource = new BindingList<T_StationAddress>();
}
private void Operation_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
switch (e.Button.Caption)
{
case "删除": gridView2.DeleteSelectedRows(); break;
case "新增": gridView2.AddNewRow(); break;
case "保存": var i=gridView2.DataSource; break;
}
}
注意点,DataSource必须绑定BindingList,表格才可以编辑
BindingList和List的转换关系
//List转Binding,需要将List传入构造函数中
gcStationAddress.DataSource =new BindingList<T_StationAddress>(new List<T_StationAddress>());
//Binding转List,有现成的扩展方法
List<T_StationAddress> lis = new BindingList<T_StationAddress>().ToList();
MVVM模式
MVVM
public class GirdView
{
private void InitialBinding()
{
var fluentApi = mvvmContext1.OfType<GridViewModel>();
fluentApi.SetBinding(gridControl1, x => x.DataSource, y => y.GridDatas);
// 仅限绑定DataTable有用
fluentApi.SetTrigger(x => x.TableColunm, d =>
{
gridView1.Columns.Clear();
foreach (var item in d)
{
var col = new DevExpress.XtraGrid.Columns.GridColumn();
col.Caption = item.Key;
col.FieldName = item.Key;
col.Name = item.Key;
col.Visible = true;
this.gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { col });
}
// 刷新数据
gridControl1.RefreshDataSource();
});
}
}
public class GridViewModel
{
// 想要动态添加列,要用DataTable
public DataTable GridDatas { get; set; } = new DataTable();
// 能够自动通知集合内部的单个属性的更改
public BindingList<Entity> GridDatas { get; set; }= new BindingList<Entity>();
// 只通知集合级别的变更,不自动通知项目属性的更改。
public ObservableCollection<Entity> GridDatas { get; set; }= new ObservableCollection<Entity>();
//当出现需要动态修改表格列的时候可以用该方法
private void ConvertListToDataTable(List<Dictionary<string, string>> content)
{
GridDatas.Columns.Clear();
GridDatas.Clear();
var ct = content.FirstOrDefault();
var ctName = ct.Select(k => k.Key).ToList();
foreach (var item in ctName)
{
GridDatas.Columns.Add(item, typeof(string));
}
foreach (var row in content)
{
var ctValue = row.Select(k => k.Value).ToList();
object[] values = new object[ctValue.Count];
for (var i = 0; i < ctValue.Count; i++)
{
values[i] = ctValue[i];
}
GridDatas.Rows.Add(values);
}
}
}

浙公网安备 33010602011771号