Заголовок строки нумерации в сетке данных с использованием C # - PullRequest
0 голосов
/ 05 августа 2010

Привет всем, я использую datagrid, и у него нет автоматической нумерации. поэтому я использовал следующий метод для нумерации в заголовке строки, но проблема в том, что числа повторяются, и когда они сортируют столбец, они переставляют сами себя. Также, когда я прокручиваю страницу, когда строка выходит из видимости и когда вы прокручиваете снова его номер меняется .. например, при загрузке страницы вы видите от 1 до 30, чтобы при прокрутке вверх и вниз дважды, порядок мог бы стать 1,30,25,4, ... и т.д. в заголовке строки отображается случайное число пожалуйста, предложите выход для меня

На странице XAML я вызвал метод следующим образом LoadingRow = "dg_expSummary_LoadingRow"

В бэкэнде код выглядит следующим образом

private void dg_expSummary_LoadingRow(object sender, DataGridRowEventArgs e)
{
   e.Row.Header = e.Row.GetIndex() + 1;
}

Ответы [ 3 ]

0 голосов
/ 08 сентября 2010

Я делаю это в VB.Net.Сохраните исходный номер строки набора результатов в строке (x). Столбец (0). Тег, а затем:

Private Sub gridData_RowPostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPostPaintEventArgs) Handles gridData.RowPostPaint

    Dim style As DataGridViewCellStyle
    Dim Pen As Pen
    Dim rec As RectangleF
    Dim format As StringFormat
    'Dim n As Integer

    'get style to use for row header cells            
    style = gridData.RowHeadersDefaultCellStyle

    'get pen (needed to get text brush)            
    Pen = New Pen(style.ForeColor)

    'get row rectangle and adjust to width of row header            
    rec = e.RowBounds
    rec.Width = gridData.RowHeadersWidth

    'create formating object to center row number            
    format = StringFormat.GenericTypographic
    Format.Alignment = StringAlignment.Center
        Format.LineAlignment = StringAlignment.Center

        'draw the row number in row header            
        e.Graphics.DrawString(gridData.Rows.Item(e.RowIndex).Cells(0).Tag.ToString(), style.Font, Pen.Brush, rec, format)

    End Sub

Мой код адаптирован из примера ac #, найденного здесь: http://www.daniweb.com/forums/thread302079.html

0 голосов
/ 23 февраля 2012

Установите это свойство для вашей DataGrid в XAML

VirtualizingStackPanel.VirtualizationMode = "Стандарт"

0 голосов
/ 05 августа 2010

Попробуйте задать имена столбцов один раз, в нужное время. Например. после настройки источника данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...