数据网格和列数

时间:2013-07-05 07:34:50

标签: c# wpf datagrid

我有DataGridDataTable相关联。

对于这个DataGrid,我自己在后面的代码中添加了3列。

if (resultDataGrid.ItemsSource != null)
            {
                List<String> resColList = new List<String> { "Solde M.O", "Solde Deplacement", "Solde Pieces" };

                foreach (string cName in resColList)
                {
                    DataGridTextColumn column = new DataGridTextColumn();
                    column.Header = cName.ToUpper();
                    column.Binding = new Binding(cName.ToUpper());
                    resultDataGrid.Columns.Add(column);
                }
            }

我想重新索引包含19列的此DataGrid的列,但问题是当我对DataGrid列进行计数时,它只计算代码中添加的3列即使我的DataGrid将我的DataTable设为ItemSource,也会落后于此。

 if (_tableCase.Rows.Count > 0)
            {
                resultDataGrid.ItemsSource = _tableCase.AsDataView();
                createResultColumn();
                setColumnIndex(); //This is the fonction which set the new index.
            }
            else
                resultDataGrid.ItemsSource = null;

            MessageBox.Show(resultDataGrid.Columns.Count.ToString()); //this return 3 first run and then 31 if I change the filter.

 for (int i = 0; i < resultDataGrid.Columns.Count; ++i) // Only display the 3 column added in the code behind.
                MessageBox.Show(resultDataGrid.Columns[i].Header.ToString());

但是在我的应用程序中,我正在更改显示DataTableDataGrid行的过滤器,现在我的列数会返回31。

任何人都对我错过的内容有任何解释?因为经过几个小时的调整后没有出现任何事情。

1 个答案:

答案 0 :(得分:3)

The documentation州:

Automatically generated columns are not added to the Columns collection.

所以这是一种正常行为。