2013-08-22 6 views
5

मेरे पास एक विशाल यूआई है जिसे मैं डिजाइन कर रहा हूं। जिस तरह से मेरा नियोक्ता इसे चाहता है, कम से कम 100 लेबल हैं। अब, मैंने हमेशा सोचा है कि इस तरह के मामलों में, यूआई को छोटे कस्टम नियंत्रण में तोड़ना आदर्श तरीका था। हालांकि, किसी ने हाल ही में मुझे बताया कि कस्टम नियंत्रण केवल कोड पुन: उपयोग के लिए ही हैं। इसके लिए वास्तविक सुझाए गए अभ्यास क्या हैं?कस्टम उपयोगकर्ता नियंत्रण का उपयोग कब करें

संपादित

समाप्त प्रपत्र इस तरह दिखेगा: अब

enter image description here

, मैं यूआई के लिए WPF उपयोग कर रहा हूँ, और मैं इस छोटे में टूट की सोच रहा हूँ बिट्स।

+0

"कम से कम 100 लेबल" के साथ आपका क्या मतलब है? लेबल पहले से ही पुन: प्रयोज्य नियंत्रण हैं, और उनमें से बड़ी संख्या का मतलब यह नहीं है कि कस्टम नियंत्रण की आवश्यकता है – Vik

+0

@RichardEv: मैंने UI की एक तस्वीर पोस्ट की है। बहुत सारे लेबल हैं क्योंकि यह वही तरीका है जो मेरा नियोक्ता चाहता है। मैं इसे लगभग 10-14 छोटे नियंत्रणों को तोड़ने की सोच रहा था। – MyCodeSucks

+0

@ विक: मेरा मतलब है कि यूआई में "कम से कम 100 लेबल" होंगे। हकीकत में, यह बहुत अधिक है। – MyCodeSucks

उत्तर

2

अपनी छवि के आधार पर मैं कुछ repetitions देखो, यह दोहराव से प्रत्येक के लिए एक कस्टम UserControl

हो सकता है लेकिन यह निर्भर करता है पर प्रयोज्य यह आसान एक कस्टम UserControl लिखने के लिए तो यह करना है लेकिन अगर यह पठनीयता को कम करेगा अपने कोड की और यह भी अतिरिक्त जटिलता कहते हैं यह

नहीं करते यहाँ क्या अलग UserControl के

हरे वाले हो सकता है का एक उदाहरण तर्क के संभावित उपयोगी encapsulations
नारंगी लोगों शायद कुछ नहीं की जरूरत है कर रहे हैं बाजार सामान (डॉन 'टी अपने सॉफ्टवेयर बारे में पर्याप्त जानकारी)
लाल वालों शायद दृश्य हिस्सा वे repetitions हैं से प्रशिक्षु उपयोग (पर आधारित है कर रहे हैं ताकि कस्टम UserControl चाहिए)

enter image description here

0

चूंकि आपका यूआई केवल पढ़ने के लिए है, तो मैं grid का उपयोग करने का सुझाव दूंगा।

0

क्या आप WPF के लिए नए हैं? बिट्स में दृश्य को तोड़ने के लिए डब्ल्यूपीएफ आपको कस्टमकंट्रोल और उपयोगकर्ता नियंत्रण प्रदान करता है। वे दो बहुत ही समान चीजें हैं जो अभी तक एक-दूसरे से बिल्कुल अलग हैं। कस्टमकंट्रोल बटन, लेबल, टेक्स्टबॉक्स, डेटाग्रिड्स ... आदि हैं। वे मूल रूप से सरल स्टैंड-अलोन नियंत्रण हैं। UserControls एक उद्देश्य की सेवा करने वाले स्टैंड-अलोन नियंत्रण समूह हैं, उदाहरण के लिए एक बटन और एक कॉम्बोबॉक्स एक दूसरे के बगल में, ताकि उपयोगकर्ता कॉम्बोबॉक्स में कुछ चुन सकें और बटन पर क्लिक करके पुष्टि कर सकें।

यदि आप डेटाबेस से डेटा प्रदर्शित करना चाहते हैं तो मैं आपको डेटाग्रिड का सुझाव देता हूं जो आपको पंक्तियों और स्तंभों और सभी के साथ एक टेबल-समान दिखने देगा। यदि आप डेटाग्रिड के बगल में कुछ बटन रखना चाहते हैं, जिस पर उपयोगकर्ता कोई नई पंक्ति डालने के लिए क्लिक कर सकता है या किसी निश्चित सेल को संपादित करने के लिए क्लिक कर सकता हूं तो मैं आपको उन सभी को उपयोगकर्ता कंट्रोल के साथ लपेटने का सुझाव देता हूं जिन्हें आप अन्य स्थानों पर पुन: उपयोग कर सकते हैं जहां आपको प्रदर्शित करना है और डेटाबेस से भी डेटा बदलें।

0

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

इसके अलावा किसी को ऊपर सुझाव के रूप में - आप तार्किक रूप से यूआई के वर्गों के बाद से वे शायद DB में एक अलग मेज से आ रही तोड़ने के लिए चाहते हैं - तो उपयोगकर्ता नियंत्रण

Let (कोड के रख-रखाव के लिए) जाने का रास्ता है मुझे पता है कि क्या आप अधिक तकनीकी विवरण ढूंढ रहे हैं या तकनीकी रूप से आगे की मदद की ज़रूरत है।

0

बनाने में गलत कुछ भी नहीं है और कस्टम नियंत्रण या उपयोगकर्ता नियंत्रण का उपयोग या कुछ डेटा टेम्पलेट्स को परिभाषित करना जो आपके डेटा को व्यवस्थित करने के तरीके के आधार पर पुन: उपयोग किया जाएगा।

निश्चित रूप से यूआई बहुत गन्दा दिखता है और कुछ प्रकार के ग्रिड का उपयोग टेम्पलेट्स के साथ किया जाना चाहिए उदाहरण के लिए जहां समान डेटा है। मेरे पास सुझाव भी है और पहले शुरू करने से पहले डेटा और कार्यक्षमता के बारे में सोचें और यूआई को इसके द्वारा संचालित किया जाए। निश्चित रूप से आप पुन: उपयोग नियंत्रण/टेम्पलेट्स करेंगे। यदि आप मॉडल और व्यवहार के सामने सोचते हैं तो यूआई बाद में और आसानी से बदल सकता है।

अपने व्यूमोडेल को सही तरीके से बनाएं, कमांड में कार्यक्षमता को कार्यान्वित करें, बाइंडिंग का उपयोग करें, उसके बाद यूआई स्वाभाविक रूप से आ जाएगा, नियंत्रण का पुन: उपयोग करें, कई ग्रिड का उपयोग करें, यूआई को कई क्षेत्रों, टैब, विंडोज़ या किसी भी चीज का उपयोग करके यूजर को अधिक दोस्ताना बनाएं उपयोगकर्ता अधिक आरामदायक है।

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