如果listview的AllowReorder列设置为true,如何在运行时根据displayhedex得到列标题文本的字符串列表? listview.Columns只返回原始顺序的列。
答案 0 :(得分:5)
C#2.0?还是C#3.0? LINQ答案(C#3.0,带有.NET 3.5或带有LINQBridge的.NET 2.0 / 3.0)更容易;-p
即
var names = (from col in listView.Columns.Cast<ColumnHeader>()
orderby col.DisplayIndex
select col.Text).ToList();
VS
List<ColumnHeader> cols = new List<ColumnHeader>();
// populate
foreach (ColumnHeader column in listView.Columns) {
cols.Add(column);
}
// sort
cols.Sort(delegate(ColumnHeader x, ColumnHeader y) {
return x.DisplayIndex.CompareTo(y.DisplayIndex);
});
// project
List<string> names = cols.ConvertAll<string>(delegate(ColumnHeader x) {
return x.Text;
});
无论哪种方式,它都会为您提供List<string>
列标题文字值。