protected override FrameworkElement CreateChild(object item) {
			BandGridColumnHeader child = new BandGridColumnHeader() { IsTabStop = false, CanSyncWidth = false, DataContext = null };
			GridViewHitInfoBase.SetHitTestAcceptor(child, new ColumnHeaderTableViewHitTestAcceptor());
			ColumnBase column = ((GridColumnData)item).Column;
			BandBehavior.UpdateColumnHeaderTemplate(column);
			BandedViewBehavior.SetColumnsLayoutControl(column, this);
			BandedViewBehavior.UpdateColumnPosition(BandBehavior, column);
			PrepareChild(child, column);
			return child;
		}
		void PrepareChild(BandGridColumnHeader child, ColumnBase column) {
			int columnCorrectingCoef = BandedViewBehavior.GetIsLeftColumn(column) ? 0 : 1;
			int columnSpanCorrectingCoef = BandedViewBehavior.GetIsLeftColumn(column) ? 1 : 0;
			StdGrid.SetRow(child, BandedViewBehavior.GetRow(column));
			StdGrid.SetColumn(child, BandedViewBehavior.GetColumn(column) + columnCorrectingCoef);
			StdGrid.SetRowSpan(child, BandedViewBehavior.GetRowSpan(column));
			StdGrid.SetColumnSpan(child, BandedViewBehavior.GetColumnSpan(column) + columnSpanCorrectingCoef);
		}