【发布时间】:2013-07-31 08:48:54
【问题描述】:
我有一个 C# WPF 应用程序,我在其中使用 DataTable 作为 DataGrid 的源。
现在当用户在 DataGrid 中移动一个列时(我已经找到了一个 ColumnReordered 事件) 我想将 Column 的索引更改为 Position, 用户将其移动到(第一个位置为 0,第二个位置为 1...)
我想这样做是因为我想在用户下次运行应用程序时保存列位置。
有没有办法做到这一点?
【问题讨论】:
我有一个 C# WPF 应用程序,我在其中使用 DataTable 作为 DataGrid 的源。
现在当用户在 DataGrid 中移动一个列时(我已经找到了一个 ColumnReordered 事件) 我想将 Column 的索引更改为 Position, 用户将其移动到(第一个位置为 0,第二个位置为 1...)
我想这样做是因为我想在用户下次运行应用程序时保存列位置。
有没有办法做到这一点?
【问题讨论】:
您需要做的就是每当用户即将关闭表单时,您会获取列名及其各自的索引,并将其保存为任何格式,例如 xml、csv。下次用户加载时,您可以在从文件中读取他最后指定的设置后应用重新排序。
你可以看看这篇文章我的意思。这实现了相同的想法。不过,您可以为您的 WPF 应用程序修改它。
http://www.codeproject.com/Articles/37087/DataGridView-that-Saves-Column-Order-Width-and-Vis
【讨论】:
使用 ColumnIndex
int columnIndex = dataGridView.CurrentCell.ColumnIndex;
这里已经发布的帖子应该会有所帮助;
Get current cell column index in DataGridView CurrentCellChanged Event
【讨论】: