WPF datagrid 中 DataGridComboBoxColumn 和 DataGridCheckBoxColumn 使用方法


生成列 :

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

你可能感兴趣的:(.net)