如果是针对某个区域范围而不是列,不能使用随机安装示例中的方法。
只能使用CellFactory。
第一个问题当用户进入编辑模式的时候, editor没有被重写, 所以没有combo, 需要重写CreateCellContentEditor。
第二个问题是一样的由于editor没有设 导致cellcontent和celleditor不一样, 出现重叠。
针对这点,1楼提供的代码有点问题,做了修改如下:
- public class MyCellFactory : CellFactory
- {
- public override void CreateCellContentEditor(C1FlexGrid grid, Border bdr, CellRange range)
- {
- base.CreateCellContentEditor(grid, bdr, range);
- var col = grid.Columns[range.Column];
- if(col.ColumnName == "Align")
- {
- C1ComboBox comboBox = new C1ComboBox();
- comboBox.VerticalAlignment = VerticalAlignment.Center;
- comboBox.HorizontalAlignment = HorizontalAlignment.Center;
- comboBox.Width = 94;
- comboBox.IsEditable = true;
- comboBox.ItemsSource = Enum.GetNames(typeof(HorizontalAlignment));
- Binding binding = new Binding();
- binding.Path = new PropertyPath("Align");
- binding.Mode = BindingMode.TwoWay;
- comboBox.SetBinding(C1ComboBox.TextProperty, binding);
- comboBox.IsDropDownOpen = true;
- bdr.Child = comboBox;
- }
- }
- }
复制代码 |