【发布时间】:2011-01-31 09:07:41
【问题描述】:
如何在wpf中重新排序grid和listview的行列。请讨论。谢谢
【问题讨论】:
-
Thomas 您的意思是您希望能够拖放列和行以使用鼠标水平(列)和垂直(行)移动它们?
标签: .net wpf listview datagrid
如何在wpf中重新排序grid和listview的行列。请讨论。谢谢
【问题讨论】:
标签: .net wpf listview datagrid
可以在运行时通过拖放列标题对列进行重新排序。要以编程方式重新排序列,您需要修改 ListView.View 的 Columns 集合,例如:
GridView gv = listview.View as GridView;
GridViewColumn cd = gv.Columns[0];
gv.Columns.Remove(cd);
gv.Columns.Add(cd);
(假设 listview 是您的 ListView 并且它的 View 是一个至少有 2 列的 GridView)此代码会将第一列放在最后。
要以编程方式重新排序行,您可以修改 ListView 后面的 Collection(如果 ListView 没有排序,如果有,则不应更改行的顺序)。
要通过拖放对行重新排序,您需要编写一些代码来处理定义拖放操作的所有漂亮事件。示例和起点可以是this blog post。
另外,如果您提供更多关于您想要什么的详细信息,我们可以提供更详细的答案。
【讨论】:
如果您想重新排序行并保存或使用新的行顺序,我建议您将名为 Index 或 RowIndex 的列添加到控件的基础数据源中,这样您只需更改拖放操作即可给定行的该列的值,在完成所有操作后,您可以存储或使用该值用于下一次渲染或您需要的任何其他内容。
【讨论】: