以下代码为每个显示的列返回-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");
}
答案 0 :(得分:2)
AutoGeneratingColumn
事件是在自动生成单个列时发生的,换句话说,当列在dataGrid中形成时将调用该事件。这意味着尚未显示任何列。
DataGridColumn.DisplayIndex
属性显示列在DataGrid中的位置。我们尚未在AutoGeneratingColumn事件中显示列。在将DisplayIndex属性添加到DataGrid.Columns集合之前,其默认值为-1。
这就是为什么要获得默认值-1的原因。
ColumnDisplayIndexChanged
当您选择特定列并更改DataGrid
中的已付清订单时,将调用事件。
希望我已经回答了您的问题!