生成列 :
if (entity.EditType == "DropDownList")
{
DataGridComboBoxColumn cob = new DataGridComboBoxColumn();
cob.Header = entity.Name;
cob.SelectedValueBinding = new Binding(entity.Code);
Columns.Add(cob);
if (entity.GridWidth == 0)
{
cob.Visibility = Visibility.Hidden;
}
}
else if (entity.EditType == "CheckBox") {
DataGridCheckBoxColumn chk = new DataGridCheckBoxColumn();
chk.Binding = new Binding(entity.Code);
chk.Header = entity.Name;
Columns.Add(chk);
if (entity.GridWidth == 0)
{
chk.Visibility = Visibility.Hidden;
}
}
else
{
DataGridTextColumn column = new DataGridTextColumn();
column.Binding = new Binding(entity.Code);
column.Header = entity.Name;
column.Width =(int)entity.GridWidth;
Columns.Add(column);
if (entity.GridWidth == 0)
{
column.Visibility = Visibility.Hidden;
}
}
给dataview 绑定数据源之前初始化控件
foreach(DataGridColumn col in dgGrid.Columns){
if (col.SortMemberPath.ToString() == "WeekDay")
{
//初始化grid 中的 星期
DataGridComboBoxColumn cob = (DataGridComboBoxColumn)col;
cob.SelectedValuePath = "Value";
cob.DisplayMemberPath = "Key";
cob.ItemsSource = list;
}
if (col.SortMemberPath.ToString() == "Unit")
{
//初始化grid 中的单位
initUnit();
var chargeUnitList = from item in ClientInfo.Dictionaries where item.CatalogID == 34 select item;
DataGridComboBoxColumn cob = (DataGridComboBoxColumn)col;
cob.SelectedValuePath = C_DictionaryInfoEntity.DICTIONARYID_FIELD;
cob.DisplayMemberPath = C_DictionaryInfoEntity.DICTIONARYNAME_FIELD;
cob.ItemsSource = chargeUnitList;
}