2009-06-03 16 views
6

मेरे पास एक कॉलम के साथ एक WPF ListView है जिसमें इसकी तिथियां हैं। मैं दिनांकों को कस्टम क्रमबद्ध करने का तरीका चाहूंगा (स्ट्रिंग मान के बजाए दिनांक मूल्य से)। क्या इसे करने का कोई तरीका है? अभी मैं सूची का उपयोग कर रहा हूं। आईटम्स .ॉर्ट डिस्क्रिप्शन एक और कॉलम का उपयोग करके सॉर्ट करने के लिए, लेकिन मैं इसके बजाय दिनांक कॉलम को सॉर्ट करने के लिए इसे बदलना चाहता हूं।सॉर्ट सूची तिथि

धन्यवाद।

उत्तर

7

क्या आपने कोशिश की है?

ICollectionView view = CollectionViewSource.GetDefaultView(listView.ItemsSource); 
view.SortDescriptions.Add(new SortDescription("Date", ListSortDirection.Descending)); 

संपादित करें: तुम भी आप पता लगा रहे हैं कि जिस तरह से WPF डिफ़ॉल्ट रूप से छँटाई है नहीं है कि तुम क्या इरादा this attached property

+0

हाँ, अब मैं इसे देखता हूं। शायद मुझे डर था कि यह सिर्फ स्ट्रिंग तुलना करेगा। मैंने एक ऐसी संपत्ति बनाई जिसने मेरी स्ट्रिंग तिथि को डेट ऑब्जेक्ट में परिवर्तित कर दिया और यह अच्छी तरह से काम कर रहा है। धन्यवाद। – Max

+0

क्या आप जानते हैं कि हम XAML का उपयोग करके ऐसा कर सकते हैं? – SRKX

+1

निश्चित रूप से, [एमएसडीएन पर उदाहरण] देखें [http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx) –

1

पर्यवेक्षण सूची और एक कस्टम ऑब्जेक्ट प्रकार का उपयोग करें - और स्वयं को सॉर्ट करें। ListSiew को आइटम्ससोर्स का उपयोग करके पर्यवेक्षण सूची में कनेक्ट करें।

..., या आप इस ब्लॉग का वर्णन करने का प्रयास कर सकते हैं; Sorting ListViews

3

पर एक नज़र हो सकता है, आप डिफ़ॉल्ट के लिए एक कस्टम सॉर्टर प्रदान कर सकते हैं दृश्य:

ListCollectionView view = 
    (ListCollectionView)CollectionViewSource.GetDefaultView(listView.ItemsSource); 
view.CustomSort = new DateValueSorter(); 
listView.Items.Refresh(); 

कहाँ DateValueSorter एक वर्ग है कि IComparer इंटरफेस और प्रकार दिनांक मान के अनुसार लागू करता है और आदेश देने के लिए आप देख रहे उत्पादन होता है।

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