2011-01-06 17 views
15

मुझे डब्ल्यूपीएफ और विंडोज फॉर्म में अनुभव है, हालांकि केवल विंडोज फॉर्म डेटाग्रिड व्यू का उपयोग किया है, न कि डब्ल्यूपीएफ डाटाग्रिड (जिसे केवल नेट 4 में शामिल किया गया था या कोडेप्लेक्स से नेट 3.5 में जोड़ा जा सकता था। , मै समझता हुँ)। मैं बड़ी मात्रा में डेटा के लिए इन नियंत्रणों में से एक का उपयोग करके एक ऐप को डिलीप करने जा रहा हूं और डब्ल्यूडब्ल्यूएफ डाटाग्रिड के साथ प्रदर्शन पढ़ना एक मुद्दा है, इसलिए मैं विंडोज फॉर्म डेटाग्रिड व्यू के साथ रह सकता हूं .. क्या यह मामला है?डब्ल्यूपीएफ डाटाग्रिड बनाम विंडोज फॉर्म डेटाग्रिड व्यू

मैं तीसरे पक्ष के नियंत्रण का उपयोग नहीं करना चाहता हूं।

क्या विंडोज़ फॉर्म डेटाग्रिडव्यू बड़ी मात्रा में डेटा के लिए डब्ल्यूपीएफ डाटाग्रिड पर महत्वपूर्ण प्रदर्शन प्रदान करता है?

यदि मैं डब्ल्यूपीएफ का उपयोग करना चाहता हूं तो मैं नेट 3.5 एस एसपी 1 का उपयोग करना पसंद करूंगा, जब तक नेट 4 में डेटाग्रिड काफी बेहतर न हो?

इसके अलावा, मैं DataTable के जो मुझे लगता है बेहतर विण्डोज़ फॉर्म्स के लिए अनुकूल है ..

उत्तर

17

आपकी ज़रूरतों के लिए, जब तक आपको अन्य आवश्यकताएं नहीं हैं जो आपको WPF की ओर ले जाती हैं, तो मैं WinForms DataGridView की अनुशंसा करता हूं।

डब्ल्यूपीएफ डाटाग्रिड कोडप्लेक्स के माध्यम से 'बैंड ऑफ रिलीज' रिलीज के रूप में उपलब्ध कराया गया था, यानी ये नियंत्रण हैं जो अंततः डब्ल्यूपीएफ एपीआई में अपना रास्ता बना देंगे, लेकिन कोडप्लेक्स पर जल्दी ही रिलीज़ हो जाएंगे ताकि हम उनसे लाभ उठा सकें अगले प्रमुख .NET रिलीज से पहले। आप या तो .NET 4.0 या कोडप्लेक्स डेटाग्रिड का उपयोग कर सकते हैं। जहां तक ​​मुझे पता है कि वे एक हैं और वही हैं। डब्ल्यूपीएफ डाटाग्रिड डेटाटेबल्स के साथ काफी अच्छी तरह से खेलता है। मेरी निम्न आलेख में उदाहरण देखें:

http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx

हालांकि, WPF ढांचे और दृश्यों WinForms तुलना में थोड़ा अधिक दिग्गज हैं। इसके अलावा, WinForms DataGridView बहुत परिपक्व है।

http://msdn.microsoft.com/en-us/library/ms171622.aspx

:

बहुत बड़े डेटासेट के लिए, WinForms DataGridView एक विशेषता यह है कि WPF डेटा ग्रिड, जो बहुत बड़ी ग्रिड (पंक्तियों के लाखों लोगों) के लिए महत्वपूर्ण है में मौजूद नहीं है है, यह एक आभासी विधा है

डेटा-वर्चुअलाइजेशन के रूप में भी जाना जाता है। इस मोड में, आप ग्रिड को बताते हैं कि आपके डेटा में कितनी पंक्तियां हैं, फिर कोशिकाओं को पॉप्युलेट करने के लिए ईवेंट को संभाल लें। यह तराजू बहुत अच्छी तरह से। मैंने इसे बड़े पैमाने पर और जटिल ग्रिड के लिए उपयोग किया है।

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

उम्मीद है कि मदद करता है।

+0

डब्ल्यूपीएफ डेटाग्रिड तुलना में धीमा धीमा है। –

+0

मुझे जोड़ना चाहिए: मैंने बाद में बड़े डेटा के लिए डब्ल्यूपीएफ डाटाग्रिड का उपयोग किया है - नेट 4.0 में और यह ठीक था, यह धीमा है लेकिन इसमें आलसी लोडिंग जैसी चीजें हैं - केवल तभी डेटा पूछताछ करें यदि आप इसे स्क्रॉल करते हैं - भले ही आपके पास एक हाय-स्पेक मशीन यह मदद करता है! – markmnl

-3

WPF डेटा ग्रिड और अधिक तेजी से, मुझे लगता है कि साथ ADO का उपयोग करना चाहते। लेकिन जब मैं बड़ी मात्रा में डेटा (बहुत सारे कॉलम (लगभग 40-50) और पंक्तियों के लिए WPF डेटाग्रिड का उपयोग करने की कोशिश करता हूं) शैलियों के साथ यह धीमा (क्षैतिज स्क्रॉलिंग) काम करता है। तृतीय पक्ष नियंत्रण से डेटाग्रिड बहुत बेहतर काम कर रहा है (मैं इन्फ्राजिस्टिक्स XamDataGrid का उपयोग करता हूं)।

-2

WPF के लिए Xceed डेटाग्रिड की जांच करें जो WPF DataGrid से बेहतर तरीका है लेकिन यह तृतीय पक्ष है लेकिन इसके लायक है।

1

किसी भी शुरुआती (मेरे जैसे) इस निर्णय के लिए, विंडोजफॉर्म का उपयोग करना बेहद आसान है। बेशक, WPF का उपयोग करने के कई अन्य कारण हैं जो आपके निर्णय को प्रभावित कर सकते हैं, लेकिन यदि आपकी परियोजना मुख्य रूप से डेटाग्रिड है, तो WinForms जाने का तरीका है।

+1

मैं "डब्ल्यूपीएफ रास्ता" सीखने की चेतावनी दूंगा, उदाहरण के लिए ग्राउंड अप से एमवीवीएम, विन फॉर्म से संक्रमण से आसान हो सकता है। – markmnl

0

यदि आप पहले डेटाग्रिड के आइटम्ससोर्स को भरते हैं तो आप DataGridView के रूप में डेटाग्रिड WPF का उपयोग कर सकते हैं।

MyDataGrid.ItemsSource = MySource; 
MyDataGrid.Columns[0].Width = 300; 
MyDataGrid.Columns[0].Header = "MyName"; 
संबंधित मुद्दे