コード例 #1
0
ファイル: Display.cs プロジェクト: wrohrbach/n2cms
        protected void AddDisplayable()
        {
            if (Site != null && Site.DesignMode)
            {
                return;
            }

            if (Displayable != null)
            {
                displayer = Displayable.AddTo(CurrentItem, PropertyName, this);

                if (displayer != null)
                {
                    if (HeaderTemplate != null)
                    {
                        Control header = new SimpleTemplateContainer();
                        Controls.AddAt(0, header);

                        HeaderTemplate.InstantiateIn(header);
                    }

                    if (FooterTemplate != null)
                    {
                        Control footer = new SimpleTemplateContainer();
                        Controls.Add(footer);

                        FooterTemplate.InstantiateIn(footer);
                    }
                }
            }
        }
コード例 #2
0
        protected override DataGridColumn GetColumn(int columnIndex, object column)
        {
            if (column is DataGridColumn dataGridColumn)
            {
                return(dataGridColumn);
            }

            if (column is string bindingPath)
            {
                return new DataGridTextColumn {
                           Header = bindingPath, Binding = new Binding(bindingPath)
                }
            }
            ;

            DataGridTemplateColumn dataGridTemplateColumn = new DataGridTemplateColumn();

            if (HeaderTemplate != null)
            {
                FrameworkElement header = (FrameworkElement)HeaderTemplate.LoadContent();

                header.DataContext            = column;
                dataGridTemplateColumn.Header = header;
            }

            if (CellTemplate != null)
            {
                dataGridTemplateColumn.CellTemplate = RewriteCellTemplate(columnIndex);
            }

            return(dataGridTemplateColumn);
        }
コード例 #3
0
        public virtual void CreateHeaderControls(IDotvvmRequestContext context, GridView gridView, Action <string> sortCommand, HtmlGenericControl cell, IGridViewDataSet gridViewDataSet)
        {
            if (HeaderTemplate != null)
            {
                HeaderTemplate.BuildContent(context, cell);
                return;
            }

            if (AllowSorting)
            {
                if (sortCommand == null)
                {
                    throw new DotvvmControlException(this, "Cannot use column sorting where no sort command is specified. Either put IGridViewDataSet in the DataSource property of the GridView, or set the SortChanged command on the GridView to implement custom sorting logic!");
                }

                var sortExpression = GetSortExpression();

                var linkButton = new LinkButton();
                linkButton.SetValue(LinkButton.TextProperty, GetValueRaw(HeaderTextProperty));
                cell.Children.Add(linkButton);

                var bindingId = linkButton.GetValue(Internal.UniqueIDProperty) + "_sortBinding";
                var binding   = new CommandBindingExpression(context.Services.GetRequiredService <BindingCompilationService>().WithoutInitialization(), h => sortCommand(sortExpression), bindingId);
                linkButton.SetBinding(ButtonBase.ClickProperty, binding);

                SetSortedCssClass(cell, gridViewDataSet);
            }
            else
            {
                var literal = new Literal();
                literal.SetValue(Literal.TextProperty, GetValueRaw(HeaderTextProperty));
                cell.Children.Add(literal);
            }
        }
コード例 #4
0
ファイル: GeneralListing.cs プロジェクト: pykarun/njupiter
        protected override void CreateChildControls()
        {
            Controls.Clear();

            rptList   = new Repeater();
            plhHeader = new WebPlaceHolder();
            plhFooter = new WebPlaceHolder();

            if (ItemTemplate != null)
            {
                rptList.ItemTemplate = ItemTemplate;
            }
            if (AlternatingItemTemplate != null)
            {
                rptList.ItemTemplate = AlternatingItemTemplate;
            }
            if (SeparatorTemplate != null)
            {
                rptList.SeparatorTemplate = SeparatorTemplate;
            }

            PopulateListControls();

            if (HeaderTemplate != null)
            {
                HeaderTemplate.InstantiateIn(plhHeader);
            }
            if (FooterTemplate != null)
            {
                FooterTemplate.InstantiateIn(plhFooter);
            }

            rptList.ItemCreated   += ListItemCreated;
            rptList.ItemDataBound += ListItemDataBound;
        }
コード例 #5
0
        public HeaderTemplate GetHeaderTemplateDefault()
        {
            HeaderTemplate result = new HeaderTemplate();

            using (IDbConnection conn = Connection)
            {
                string sql = @"select * from HeaderTemplates
                                where IsDefaultTemplate = 1";

                try
                {
                    conn.Open();

                    result = conn.Query <HeaderTemplate>(sql).AsQueryable().FirstOrDefault();
                }
                catch (SqlException sqlEx)
                {
                    Logger.ErrorException(sqlEx);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException(ex);
                }
                finally
                {
                    if (conn != null && conn.State != ConnectionState.Closed)
                    {
                        conn.Close();
                    }
                }
            }

            return(result);
        }
コード例 #6
0
        public virtual UIElement GenerateHeader()
        {
            var header = HeaderTemplate == null ? null : HeaderTemplate.LoadContent() as UIElement;

            if (header == null)
            {
                var text = new TextBlock();
                text.SetBinding(TextBlock.TextProperty, new Binding {
                    Path = new PropertyPath("Title"), Mode = BindingMode.OneWay
                });
                header = text;
            }
            SetColumn(header, this);

            var element = header as FrameworkElement;

            if (element != null)
            {
                element.SetBinding(FrameworkElement.DataContextProperty, new Binding {
                    Path = new PropertyPath(ColumnProperty.DependencyProperty), Source = element, Mode = BindingMode.OneWay
                });
            }

            return(header);
        }
コード例 #7
0
ファイル: GridBoundColumn.cs プロジェクト: akhuang/Zing
        protected override IGridCellBuilder CreateHeaderBuilderCore()
        {
            IGridCellBuilder builder = null;

            HeaderHtmlAttributes.Add("data-field", Member);
            HeaderHtmlAttributes.Add("data-title", Title);
            if (!Groupable)
            {
                HeaderHtmlAttributes.Add("data-groupable", "false");
            }

            AppendAggregateAttributes();

            if (Sortable && Grid.Sortable.Enabled && !HeaderTemplate.HasValue())
            {
                builder = new GridSortableHeaderCellBuilder(HeaderHtmlAttributes, GetSortUrl(), SortDirection, AppendHeaderContent);
            }
            else
            {
                builder = base.CreateHeaderBuilderCore();
            }

            if (Filterable && Grid.Filterable.Enabled && !Grid.ColumnMenu.Enabled)
            {
                var filtered = Grid.DataSource.Filters
                               .SelectMemberDescriptors()
                               .Any(filter => filter.Member.IsCaseInsensitiveEqual(Member));

                builder.Decorators.Add(new GridFilterCellDecorator(filtered));
            }

            return(builder);
        }
コード例 #8
0
        public bool UpdateHeaderTemplate(HeaderTemplate headerTemplate)
        {
            using (var db = new KentEntities())
            {
                try
                {
                    var template = db.HeaderTemplates.Where(d => d.ID == headerTemplate.ID).FirstOrDefault();
                    if (template == null)
                    {
                        return(false);
                    }

                    template.Content           = headerTemplate.Content;
                    template.ContentEnglish    = headerTemplate.ContentEnglish;
                    template.IsDefaultTemplate = headerTemplate.IsDefaultTemplate;
                    template.LastUpdate        = DateTime.Now;

                    return(db.SaveChanges() > 0 ? true : false);
                }
                catch (SqlException sqlEx)
                {
                    Logger.ErrorException(sqlEx);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException(ex);
                }
            }

            return(false);
        }
コード例 #9
0
        public bool SaveHeaderTemplate(HeaderTemplateManageModel model)
        {
            if (model.ID > 0)
            {
                var dataUpdate = new HeaderTemplate()
                {
                    ID                = model.ID.Value,
                    Content           = model.Content,
                    IsDefaultTemplate = model.IsDefaultTemplate,
                    ContentEnglish    = model.ContentEnglish
                };

                return(_headerRepository.UpdateHeaderTemplate(dataUpdate));
            }
            else
            {
                HeaderTemplate data = new HeaderTemplate()
                {
                    Name              = model.Name,
                    Content           = model.Content,
                    ContentEnglish    = model.ContentEnglish,
                    IsDefaultTemplate = model.IsDefaultTemplate,
                    Created           = DateTime.Now,
                    CreatedBy         = "Admin",
                    LastUpdate        = DateTime.Now,
                    LastUpdateBy      = "Admin",
                    RecordActive      = true,
                    RecordDeleted     = false,
                    RecordOrder       = 1
                };
                return(_headerRepository.AddHeaderTemplate(data));
            }
        }
コード例 #10
0
        // Generates tabs from the passed-in items
        private void addTabs(IEnumerable items)
        {
            if (items != null && HeaderTemplate != null && ContentTemplate != null)
            {
                foreach (object item in items)
                {
                    // Create elements from header and content templates.  Necessary because applying the templates directly to
                    // the tab item's HeaderTemplate and ContentTemplate properties fails to establish the proper data context
                    FrameworkElement header  = HeaderTemplate.LoadContent() as FrameworkElement;
                    FrameworkElement content = ContentTemplate.LoadContent() as FrameworkElement;

                    if (header != null && content != null)
                    {
                        // Set the data context of tab header and content
                        header.DataContext  = item;
                        content.DataContext = item;

                        // Create the tab item and add to the collection of tabs
                        TabItem tab = new TabItem()
                        {
                            Header      = header,
                            Content     = content,
                            DataContext = item
                        };

                        if (HeaderStyle != null)
                        {
                            tab.Style = HeaderStyle;
                        }

                        tabs.Add(tab);
                    }
                }
            }
        }
コード例 #11
0
        public HeaderTemplateManageModel GetHeaderTemplateById(int id)
        {
            HeaderTemplate data = _headerRepository.GetHeaderTemplateById(id);

            if (data != null)
            {
                return(MappingManageModel(data));
            }
            return(new HeaderTemplateManageModel());
        }
コード例 #12
0
        public HeaderTemplateModel GetHeaderTemplateDefault()
        {
            HeaderTemplate data = _headerRepository.GetHeaderTemplateDefault();

            if (data != null)
            {
                return(Mapping(data));
            }
            return(new HeaderTemplateModel());
        }
コード例 #13
0
ファイル: GridColumnBase.cs プロジェクト: Zedfa/Core
 protected void AppendHeaderContent(IHtmlNode container)
 {
     if (HeaderTemplate != null && HeaderTemplate.HasValue())
     {
         HeaderTemplate.Apply(container);
     }
     else
     {
         container.Html(Title.HasValue() ? Title : "&nbsp;");
     }
 }
コード例 #14
0
 private HeaderTemplateManageModel MappingManageModel(HeaderTemplate data)
 {
     return(new HeaderTemplateManageModel()
     {
         ID = data.ID,
         Name = data.Name,
         Content = data.Content,
         ContentEnglish = data.ContentEnglish,
         IsDefaultTemplate = data.IsDefaultTemplate
     });
 }
コード例 #15
0
        protected override void CreateChildControls()
        {
            base.CreateChildControls();

            // header
            if (HeaderTemplate != null)
            {
                _headerTemplate = new HtmlGenericControl("header");
                _headerTemplate.Attributes.Add("class", "modal-header");
                HtmlGenericControl h2 = new HtmlGenericControl("h2");
                h2.Attributes.Add("class", "modal-title");
                _headerTemplate.Controls.Add(h2);
                this.Controls.Add(_headerTemplate);
                HeaderTemplate.InstantiateIn(h2);
            }

            // body with empty content by default
            _bodyTemplate = new HtmlGenericControl("div");
            _bodyTemplate.Attributes.Add("class", "modal-body");
            this.Controls.Add(_bodyTemplate);
            if (BodyTemplate != null)
            {
                BodyTemplate.InstantiateIn(_bodyTemplate);
            }

            // footer
            if (FooterTemplate != null)
            {
                _footerTemplate = new HtmlGenericControl("div");
                _footerTemplate.Attributes.Add("class", "modal-footer");
                this.Controls.Add(_footerTemplate);
                FooterTemplate.InstantiateIn(_footerTemplate);
            }

            try
            {
                Control target = Page.FindControlRecursive(this.AssociateControlID);

                if (target is WebControl wc)
                {
                    wc.Attributes["href"] = "#" + this.ClientID;
                    wc.AddCssClass(IsClosable ? "wb-lbx" : "wb-lbx lbx-modal");
                }
            }
            catch (Exception)
            {
                throw new Exception("AssociateControlID property for WetModal with ID " + this.ID + " should refer to an html control with the href attribute.");
            }
        }
コード例 #16
0
 private HeaderTemplateModel Mapping(HeaderTemplate data)
 {
     return(new HeaderTemplateModel()
     {
         ID = data.ID,
         Name = data.Name,
         Content = data.Content,
         ContentEnglish = data.ContentEnglish,
         IsDefaultTemplate = data.IsDefaultTemplate,
         Created = data.Created,
         CreatedBy = data.CreatedBy,
         LastUpdate = data.LastUpdate,
         LastUpdateBy = data.LastUpdateBy
     });
 }
コード例 #17
0
ファイル: UniformItem.cs プロジェクト: rekha-balan/Prompts
        public override void OnApplyTemplate()
        {
            GoToState(Drawing);
            base.OnApplyTemplate();
            ReSize();

            var content = (ContentControl)GetTemplateChild("Content");

            content.Content = ContentTemplate.LoadContent();
            var headerContent = (ContentControl)GetTemplateChild("HeaderContent");

            headerContent.Content            = HeaderTemplate.LoadContent();
            headerContent.MouseLeftButtonUp += HeaderContentMouseLeftButtonUp;
            headerContent.MouseEnter        += UniformItemMouseEnter;
            headerContent.MouseLeave        += UniformItemMouseLeave;
        }
コード例 #18
0
        private async void setItemsSource(IList items)
        {
            if (!initialized)
            {
                if (HeaderTemplate != null)
                {
                    ContentPanel.Children.Add((FrameworkElement)HeaderTemplate.LoadContent());
                }
                if (FooterTemplate != null)
                {
                    ContentPanel.Children.Add((FrameworkElement)FooterTemplate.LoadContent());
                }
                initialized = true;
            }

            if (items == null)
            {
                items = new object[0];
            }
            int headerCount     = HeaderTemplate != null ? 1 : 0;
            int footerCount     = FooterTemplate != null ? 1 : 0;
            int itemsCount      = ContentPanel.Children.Count - headerCount - footerCount;
            int changeableCount = Math.Min(itemsCount, items.Count);
            int addableCount    = items.Count - changeableCount;
            int removableCount  = itemsCount - changeableCount;
            var itemTemplate    = this.ItemTemplate;

            for (int i = 0; i < changeableCount; i++)
            {
                ((FrameworkElement)(((Border)ContentPanel.Children[headerCount + i]).Child)).DataContext = items[i];
            }
            for (int i = 0; i < addableCount; i++)
            {
                object           newItem    = items[changeableCount + i];
                FrameworkElement newElement = (FrameworkElement)itemTemplate.LoadContent();
                newElement.DataContext = newItem;
                var newElementContainer = new Border {
                    Child = newElement, Background = new SolidColorBrush(Colors.Transparent)
                };
                newElementContainer.Tapped += elementContainer_Tapped;
                ContentPanel.Children.Insert(ContentPanel.Children.Count - footerCount, newElementContainer);
            }
            for (int i = removableCount - 1; i >= 0; i--)
            {
                ContentPanel.Children.RemoveAt(headerCount + changeableCount + i);
            }
        }
コード例 #19
0
        protected override void CreateChildControls()
        {
            CollapseItemHeaderContainer headerTemplateContainer = new CollapseItemHeaderContainer();

            HeaderTemplate.InstantiateIn(headerTemplateContainer);

            CollapseItemBodyContainer bodyTemplateContainer = new CollapseItemBodyContainer();

            BodyTemplate.InstantiateIn(bodyTemplateContainer);

            Controls.Add(headerTemplateContainer);
            Controls.Add(bodyTemplateContainer);

            CollapseItemBodyContainer body = (Controls.OfType <CollapseItemBodyContainer>().FirstOrDefault() as CollapseItemBodyContainer);

            body.Opened = this.Opened;
        }
コード例 #20
0
        public override void RenderHeader(TableCell container)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            if (HeaderTemplate == null)
            {
                base.RenderHeader(container);
            }
            else
            {
                HeaderTemplate.InstantiateIn(container);
                container.ApplyStyle(HeaderStyle);
            }
        }
コード例 #21
0
        public static void PrintGrid(ref DataGrid fwe, string header)
        {
            var columnWidths = GetColumnWidths(fwe);

            var ht             = new HeaderTemplate();
            var headerTemplate = XamlWriter.Save(ht);

            headerTemplate = headerTemplate.Replace("TitleHeader", header);
            var dt = Grid2Dt(fwe);


            var printControl = PrintControlFactory.Create(dt, columnWidths, headerTemplate);

            printControl.ShowPrintPreview();
            // var visual = printControl.DrawingVisual;

            // SetUpPrint(fwe,visual);
        }
コード例 #22
0
        public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
        {
            var isHeader = HeaderIndexes.Contains(indexPath.Row);

            WFCell cell;

            if (isHeader)
            {
                cell = (WFCell)collectionView.DequeueReusableCell(WHeaderCell.CELL_ID, indexPath);
            }
            else
            {
                cell = (WFCell)collectionView.DequeueReusableCell(WFCell.CELL_ID, indexPath);
            }

            if (cell.RendererView == null)
            {
                View formsView;
                if (isHeader)
                {
                    formsView = (View)HeaderTemplate.CreateContent();
                }
                else
                {
                    formsView = (View)ItemTemplate.CreateContent();
                }

                var nativeView = formsView.ToUIView(new CGRect(0, 0, cell.Frame.Width, cell.Frame.Height));
                cell.RendererView = nativeView;
            }

            var subview = cell.ContentView.Subviews[0];
            var frame   = subview.Frame;

            //force height to the cell height in case the reusable cell subview have the old height
            subview.Frame = new CGRect(frame.X, frame.Y, cell.Frame.Width, cell.Frame.Height);

            var element = (cell.RendererView as VisualElementRenderer <VisualElement>).Element;

            element.BindingContext = ItemsSource[indexPath.Row];
            element.Layout(new Xamarin.Forms.Rectangle(0, 0, cell.Frame.Width, cell.Frame.Height));

            return(cell);
        }
コード例 #23
0
        private View CreateView(HeaderedItem next)
        {
            var  h = next.Header;
            View view;

            if (h != null)
            {
                view = HeaderTemplate?.CreateContent() as View ?? new Label {
                };
                view.BindingContext = h;
                return(view);
            }

            view = ItemTemplate?.CreateContent() as View ?? new Label {
            };
            view.BindingContext = next.Item;
            SetItemModel(view, next);
            return(view);
        }
コード例 #24
0
ファイル: TabItem.cs プロジェクト: ya1gaurav/moon
        private void UpdateHeaderVisuals()
        {
            ContentControl header = GetContentControl(IsSelected, TabStripPlacement);

            if (header == null)
            {
                return;
            }

            if (HeaderTemplate == null)
            {
                header.Content = Header;
            }
            else
            {
                FrameworkElement headerContent = HeaderTemplate.LoadContent() as FrameworkElement;
                header.Content = headerContent;
            }
        }
コード例 #25
0
        protected override void RenderContents(HtmlTextWriter writer)
        {
            writer.RenderBeginTag(HtmlTextWriterTag.Table);
            writer.RenderBeginTag(HtmlTextWriterTag.Thead);
            var item = new TableItem(-1, null);

            HeaderTemplate.InstantiateIn(item);
            item.DataBind();
            item.RenderControl(writer);
            writer.RenderEndTag();

            for (var i = 0; i < _dataArray.Length; i++)
            {
                item = new TableItem(i, _dataArray[i]);
                RowTemplate.InstantiateIn(item);
                item.DataBind();
                item.RenderControl(writer);
            }

            writer.RenderEndTag();
        }
コード例 #26
0
        public void Render()
        {
            if (ItemTemplate == null || ItemsSource == null)
            {
                return;
            }

            var layout = new StackLayout();

            layout.Orientation = Orientation == ScrollOrientation.Vertical ? StackOrientation.Vertical : StackOrientation.Horizontal;

            if (HeaderTemplate != null)
            {
                var headerView = HeaderTemplate.CreateContent() as View;
                layout.Children.Add(headerView);
            }

            foreach (var item in ItemsSource)
            {
                var command = SelectedCommand ?? new Command((obj) =>
                {
                    var args = new ItemTappedEventArgs(ItemsSource, item);
                    ItemSelected?.Invoke(this, args);
                });
                var commandParameter = SelectedCommandParameter ?? item;

                var viewCell = ItemTemplate.CreateContent() as ViewCell;
                viewCell.View.BindingContext = item;
                viewCell.View.GestureRecognizers.Add(new TapGestureRecognizer
                {
                    Command              = command,
                    CommandParameter     = commandParameter,
                    NumberOfTapsRequired = 1
                });

                layout.Children.Add(viewCell.View);
            }

            Content = layout;
        }
コード例 #27
0
        private void CreateControlHierarchy()
        {
            if (HeaderTemplate != null)
            {
                BasicTemplateContainer header = new BasicTemplateContainer();
                HeaderTemplate.InstantiateIn(header);
                Controls.Add(header);
                Controls.Add(new LiteralControl("<br>"));
            }

            int count = menuData.Count;

            for (int index = 0; index < count; index++)
            {
                MenuItemData itemdata = (MenuItemData)menuData[index];
                CreateMenuItem(itemdata.Title, itemdata.Url, itemdata.ImageUrl, itemdata.Target);

                if (index != count - 1)
                {
                    if (SeparatorTemplate != null)
                    {
                        BasicTemplateContainer separator = new BasicTemplateContainer();
                        SeparatorTemplate.InstantiateIn(separator);
                        Controls.Add(separator);
                    }
                    else
                    {
                        Controls.Add(new LiteralControl(" | "));
                    }
                }
            }

            if (FooterTemplate != null)
            {
                Controls.Add(new LiteralControl("<br>"));
                BasicTemplateContainer footer = new BasicTemplateContainer();
                FooterTemplate.InstantiateIn(footer);
                Controls.Add(footer);
            }
        }
コード例 #28
0
        protected override void Render(HtmlTextWriter writer)
        {
            // Если шаблон был установлен в хост странице.
            if (_headerTemplate != null)
            {
                // Инициализируем контейнер для данного шаблона. При вызове конструктора передаем указатель на текущий объект,
                // так как в HeaderTemplateContainer могут потребоваться данные из этого объекта.
                HeaderTemplateContainer template = new HeaderTemplateContainer(this);

                // Инициалищируем шаблон в указанном контейнере.
                HeaderTemplate.InstantiateIn(template);

                // Добавляем контейнер в дерево элементов управления.
                Controls.Add(template);
            }
            else
            {
                Label control = new Label();
                control.Text = Title + " [ " + Author + " ] ";
                Controls.Add(control);
            }
            if (_messageTemplate != null)
            {
                MessageTemplateContainer templateContainer = new MessageTemplateContainer(this);
                MessageTemplate.InstantiateIn(templateContainer);
                Controls.Add(templateContainer);
            }
            else
            {
                Label control = new Label();
                control.Text = "<br />" + MessageBody;
                Controls.Add(control);
            }

            // Для того что бы сработали все выражения привязок <%# ... %>, используемых в шаблоне, вызываем метод DataBind.
            DataBind();

            base.Render(writer);
        }
コード例 #29
0
        public bool AddHeaderTemplate(HeaderTemplate headerTemplate)
        {
            using (var db = new KentEntities())
            {
                try
                {
                    db.HeaderTemplates.Add(headerTemplate);
                    return(db.SaveChanges() > 0 ? true : false);
                }
                catch (SqlException sqlEx)
                {
                    Logger.ErrorException(sqlEx);
                }
                catch (Exception ex)
                {
                    Logger.ErrorException(ex);
                }
            }


            return(false);
        }
コード例 #30
0
        public virtual void CreateHeaderControls(IDotvvmRequestContext context, GridView gridView, Action <string> sortCommand, HtmlGenericControl cell)
        {
            if (AllowSorting)
            {
                if (sortCommand == null)
                {
                    throw new DotvvmControlException(this, "Cannot use column sorting where no sort command is specified. Either put IGridViewDataSet in the DataSource property of the GridView, or set the SortChanged command on the GridView to implement custom sorting logic!");
                }

                var sortExpression = GetSortExpression();

                var linkButton = new LinkButton();
                if (HeaderTemplate != null)
                {
                    HeaderTemplate.BuildContent(context, linkButton);
                }
                else
                {
                    linkButton.Text = HeaderText;
                }
                cell.Children.Add(linkButton);
                var bindingId = linkButton.GetValue(Internal.UniqueIDProperty) + "_sortBinding";
                var binding   = new CommandBindingExpression(h => sortCommand(sortExpression), bindingId);
                linkButton.SetBinding(ButtonBase.ClickProperty, binding);
            }
            else
            {
                if (HeaderTemplate == null)
                {
                    var literal = new Literal(HeaderText);
                    cell.Children.Add(literal);
                }
                else
                {
                    HeaderTemplate.BuildContent(context, cell);
                }
            }
        }