2008-12-08 10 views
5

यदि किसी सूचीदृश्य का AllowReorder कॉलम सत्य पर सेट किया गया है, तो मैं रनटाइम पर उनके displayindex के आधार पर कॉलमहेडर ग्रंथों की एक स्ट्रिंग सूची कैसे प्राप्त करूं? listview.Columns केवल मूल क्रम में कॉलम देता है।displayindex के आधार पर एक सूचीदृश्य के कॉलम हेडर की सूची कैसे प्राप्त करें?

उत्तर

5

सी # 2.0? या सी # 3.0?

 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; 
     }); 

कोई एक: LINQ जवाब (सी # 3.0, या तो .NET 3.5 या .NET 2.0/LINQBridge साथ 3.0 के साथ) एक बहुत ;-p

यानी

var names = (from col in listView.Columns.Cast<ColumnHeader>() 
       orderby col.DisplayIndex 
       select col.Text).ToList(); 

आसान बनाम है रास्ता, जो आपको कॉलम हेडर टेक्स्ट मानों का List<string> देता है।

संबंधित मुद्दे