Событие WPG DataGrid AutoGeneratingColumn возвращает -1 для всех ColumnDisplayIndex - PullRequest
0 голосов
/ 02 декабря 2018

Следующий код возвращает -1 для каждого отображаемого столбца.

Кто-нибудь знает ответ?Я пытался использовать событие ColumnDisplayIndexChanged.Но ничего не показывало.

i.konuk

private void dg_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
        {
            string headername = e.Column.Header.ToString();

            //Cancel the column you don't want to generate
            if (headername == "Occupation")
            {
                e.Cancel = true;
            }

            //update column details when generating
            if (headername == "FirstName")
            {
                e.Column.Header = "First Name";
            }

            //update column details when generating
            if (headername == "LastName")
            {
                e.Column.Header = "Last Name";
            }

            int myin = e.Column.DisplayIndex;

            System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
            messageBoxCS.AppendFormat("{0} = {1}", "Column", myin);
            messageBoxCS.AppendLine();
            MessageBox.Show(messageBoxCS.ToString(), "DataGridAutoGeneratingColumnEvent");

        }

1 Ответ

0 голосов
/ 03 декабря 2018

AutoGeneratingColumn событие происходит, когда отдельный столбец генерируется автоматически, другими словами, событие вызывается, когда столбцы формируются в dataGrid.Это означает, что столбцы пока не отображаются.

DataGridColumn.DisplayIndex свойство отображает положение столбца в DataGrid.Мы еще не отображали столбцы в событии AutoGeneratingColumn.Свойство DisplayIndex имеет значение по умолчанию -1, прежде чем оно будет добавлено в коллекцию DataGrid.Columns.Вот почему вы получаете значение по умолчанию -1.

ColumnDisplayIndexChanged Событие вызывается, когда вы выбрали определенный столбец и изменили отображаемый порядок в DataGrid.

Надеюсь, я ответил на ваш вопрос!

...