回复 1楼feiyan0320的帖子
设计多列头是通过如下步骤:
1.使用flexGrid.Columns.Add和flexGrid.Rows.Add添加列和行。
2.flexGrid.ColumnHeaders.Rows.Add(new Row()); 在列头添加第二行,实现多行列头。
3.flexGrid.ColumnHeaders[row, column]设置Caption内容。
4.使用AllowMerging属性对列头进行合并。
在XAML下做Header属性的binding是不可能的,因为它不是一个dependency property.
如果你像自定义或是bind它,可以使用CellFactory功能。
你可以设置一个TextBlock 绑定到类然后把它设置给Header的content。
举个例子:
- public partial class MainPage : UserControl
- {
- public MainPage()
- {
- InitializeComponent();
- c1flexgrid1.CellFactory = new MyCellFactory();
- }
- }
-
- public class MyCellFactory:C1.Silverlight.FlexGrid.CellFactory
- {
- public override void CreateColumnHeaderContent(C1.Silverlight.FlexGrid.C1FlexGrid grid, Border bdr, C1.Silverlight.FlexGrid.CellRange range)
- {
- base.CreateColumnHeaderContent(grid, bdr, range);
- TextBlock tb = new TextBlock();
- Binding Bd = new Binding();
- Bd.Path = new PropertyPath("ColumnName");
- tb.SetBinding(TextBlock.TextProperty, Bd);
- bdr.Child = tb;
- }
- }
复制代码 |