Exemple #1
0
        //处理表尾部分
        public void UpdateTail()
        {
            Grid g = (Grid)TailTemplate.LoadContent();

            _tailRow = g.RowDefinitions.Count;
            UpdateTemplate();
        }
Exemple #2
0
        //生成表尾部分
        private void UpdateTableTail()
        {
            //把原来产生的单元格清除掉
            foreach (FrameworkElement ui in _tailElements)
            {
                grid.Children.Remove(ui);
            }
            _tailElements.Clear();

            int i1 = 0;

            //把单元格插入表格中,行号及列号添加头及左部所占单元格
            foreach (object header in TableHeaderItems)
            {
                Grid ui = (Grid)TailTemplate.LoadContent();
                //每个单元格的数据上下文一样,插入特殊的数据实体
                DataObjectsView view = new DataObjectsView()
                {
                    Col = header, Objects = TableBodyItems
                };
                //表体模板由多个单元格组成
                List <UIElement> cells = new List <UIElement>(ui.Children);
                ui.Children.Clear();
                foreach (FrameworkElement cell in cells)
                {
                    cell.DataContext = view;
                    //用边框把内容框起来
                    Border b = new Border();
                    b.Child           = cell;
                    b.BorderThickness = new Thickness(1, 1, 1, 1);
                    b.BorderBrush     = new SolidColorBrush(Colors.Black);
                    //单元格所在行为 整个头部所占行 + 表左部所占行
                    Grid.SetRow(b, Grid.GetRow(cell) + _headRow + _row);
                    //单元格所占列为 整个左边所占列 + 单元格列号 * 每个单元格列总数
                    Grid.SetColumn(b, Grid.GetColumn(cell) + _leftCol + i1 * ui.ColumnDefinitions.Count);
                    Grid.SetRowSpan(b, Grid.GetRowSpan(ui));
                    Grid.SetColumnSpan(b, Grid.GetColumnSpan(ui));
                    grid.Children.Add(b);
                    _bodyElements.Add(b);
                }
                i1++;
            }
        }