2009-08-26 19 views
7

मेरे पास एक डाटाग्रिड है। मुझे एक कॉलम चाहिए जो पंक्तियों में बस 1 2 3 4 प्रदर्शित करता है, जितनी पंक्तियां मेरे अन्य डेटा बाइंडिंग से बनाई जा रही हैं।डब्ल्यूपीएफ डाटाग्रिड पंक्ति संख्या

<dg:DataGridTextColumn Header="#" IsReadOnly="True" 
              Binding="...."   /> 
+0

मुझे डेटाग्रिड को एक प्रमुख संख्या कॉलम दिखाने के लिए एक विशेषता के रूप में एक उत्तर मिला। मैं वास्तविक विशेषता भूल जाता हूँ। –

+4

आप भूल जाते हैं ?? वह बेकार है। क्या आप अपने कार्यक्रम को देखने के लिए सिर्फ एक सेकंड नहीं ले सकते? – JohnB

उत्तर

3

मैंने आज इस समय के लिए एमएसडीएन दस्तावेज और अन्य धागे को देखकर एक अच्छा हिस्सा बिताया है। जिस तरह से मैं इसे लागू करने के लिए बस गया हूं, वह संपत्ति (जिसे मैंने बनाया) बाध्यकारी है, विशेष रूप से उस संग्रह में ऑब्जेक्ट्स में पंक्ति संख्याओं के लिए जो डाटाग्रिड बाध्य है। जैसे

public class myItem 
{ 
    public int LineNumber { get; set; } 
    // rest of your object... 
} 

आपको ऑब्जेक्ट्स में लाइन नंबर मैन्युअल रूप से सेट करना होगा।

लाइन नंबर जोड़ने का एक और तरीका here पाया जा सकता है। कोड यह रहा:

datagrid.LoadingRow += 
    new EventHandler<DataGridRowEventArgs>(datagrid_LoadingRow); 

... 
void datagrid_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.Header = e.Row.GetIndex(); 
} 

इस कार्यान्वयन पंक्ति हैडर में लाइन नंबर डालता है और सिर्फ अपने वस्तुओं में लाइन नंबर के लिए एक संपत्ति डाल करने के लिए आप की आवश्यकता नहीं है। हालांकि, अगर आपको डेटाग्रिड से एक पंक्ति डालने या हटाने की आवश्यकता है, तो लाइन नंबर अपडेट नहीं होंगे।

+1

दूसरा काम नहीं करता है। जब हम ऊपर और नीचे स्क्रॉल करते हैं, तो सभी हेडर मानों को विकृत किया जाएगा। यह प्रदर्शन सुधारने के लिए डेटाग्रिड के आंतरिक व्यवहार के कारण है। – Gopinath

+0

चर्चा देखें: http://stackoverflow.com/questions/4663771/wpf-4-datagrid-getting-the-row-number-into-the-rowheader/4663799#comment14001342_4663799 विवरण के लिए यह क्यों हो सकता है या नहीं वर्चुअलाइजेशन सेटिंग के आधार पर, डेटाग्रिड के विभिन्न संस्करणों पर काम नहीं कर सकता है। – Tony

+0

यदि आप एमएसएसएलएल सर्वर 2005+ का उपयोग कर रहे हैं, तो आप कोशिश कर सकते हैं: http://msdn.microsoft.com/en-us/library/ms186734.aspx – nvcnvn

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