2011-04-29 8 views
5

मैं इन 2 श्रेणियां होती हैं:PagedViewCollection समूह, नहीं संपत्ति

class EmpIDPayTypeSettings 
{ 
    public Guid OID { get; set; } 
    public Guid PayTypeOID { get; set; } 
    public int GroupTypeID { get; set; } 
    public Guid EmpOID { get; set; } 
    public int OrderBy { get; set; } 
} 

class DocRegHour 
{ 
    public Guid OID { get; set; }    
    public Guid DocumentOID { get; set; }  
    public Guid medarbejderOID { get; set; } 
    public Guid PaytypeOID { get; set; }  
    public string PayTypeInfo { get; set; } 
    public double Hours { get; set; } 
    public string Comment { get; set; } 
    public DateTime CreatedDate { get; set; } 
    public DateTime LastChangedDate { get; set; }  
} 

मैं एक datagrids ItemSource करने के लिए बाध्य DocRegHour का एक संग्रह है। मैं उन्हें GroupTypeID द्वारा समूहीकृत करना चाहता हूं, क्योंकि आप देख सकते हैं कि 2 वर्गों में PaytypeOID सामान्य है।

मैंने Header = "Group" के साथ एक गैर-बाध्य ढहने वाले कॉलम को बनाने का प्रयास किया और प्रत्येक पंक्ति में पाठ के रूप में GroupTypeID सेट किया। तब मैं ने लिखा है:

var pcv = new PagedCollectionView(dataGridDayView.ItemsSource); 
pcv.GroupDescriptions.Add(new PropertyGroupDescription("Group")); 
dataGridDayView.ItemsSource = pcv; 

हालांकि यह काम नहीं करता। कोई मदद?

स्पष्टीकरण के लिए। मेरे पास है:

IEnumerable<DocRegHour> data; 
IENumerable<EmpIDPayTypeSettings> userSettings; 

var pcv = new PagedCollectionView(data); 
dataGridDayView.ItemsSource = pcv; 

कौन सा मैं GroupTypeID !, जो एक अलग संग्रह

उत्तर

1

यदि आप करते हैं में है द्वारा समूह हैं:

// LINQ the stuff you need and then group by the name you give it 
myData.Where(...).Select(emp => new { Group = emp.GroupTypeID }); 

GroupDescriptor descriptor = new GroupDescriptor("Group"); 
pcv.GroupDescriptors.Add(descriptor); 

यह काम करना चाहिए। मुझे पूरी तरह से यकीन नहीं है हालांकि मैं आपके डेटा-मॉडल को समझ गया हूं। हालांकि मैं जब यह इसी तरह की परिस्थितियों की बात आती है :)

+0

लेकिन मुझे किसी प्रकार की उत्परिवर्ती कक्षा नहीं चाहिए। मुझे कई बार पंक्तियों से डेटा निकालने की ज़रूरत है। जैसे (चयनित Item DocRecHour), मैं आपकी विधि के साथ ऐसा नहीं कर सकता। इसके अलावा, क्या होगा अगर डेटाग्रिड में गतिशील कॉलम हों? – CasperT

+0

ठीक है समझ में आता है। क्या आपके पास नेविगेशन प्रॉपर्टीज है? यदि हाँ आप उनका उपयोग कर सकते हैं। – LueTm

+0

क्षमा करें, वे क्या हैं? मैं उन्हें msdn – CasperT

1

आपका समस्या यह है कि PropertyGroupDescriptor द्वारा समूह आइटम के लिए प्रॉपर्टी और नहीं द्वारा समूह के लिए कॉलम के हेडर को उम्मीद है बहुत उपयोगी हो करने के लिए अनाम प्रकार पाया।

आपकी कक्षा DocRegHour में "समूह" नाम की कोई संपत्ति नहीं है, इसलिए PagedCollectionView इस संपत्ति द्वारा आइटम को समूहबद्ध नहीं कर सकता है।

इसे हल करने के लिए, अपनी कक्षा में एक संपत्ति "समूह" जोड़ें या PropertyGroupDescriptor के लिए एक और संपत्ति निर्दिष्ट करें।

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