如果 ListView 的 AllowReorder 列设置为 true,我如何在运行时根据它们的显示索引获取列标题文本的字符串列表? listview.Columns 只返回原始顺序的列。
最佳答案
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();
对比:
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>
列标题文本值。
关于c# - 如何根据displayindex获取listview的列标题列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348604/