2009-09-04 22 views
6

मैं कॉम्बोबॉक्स में एक खाली आइटम रखना चाहता हूं ताकि उपयोगकर्ता को "अचयनित" करने और कॉम्बोबॉक्स खाली (शून्य मान) रखने की अनुमति मिल सके।WPF: Nullable ComboBox

मैं यह कैसे कर सकता हूं?

+0

स्वच्छ ब्लॉग के एक पूरी तरह से काम करने वाले उदाहरण के लिए मेरे ब्लॉग को पढ़ें, http://www.blueedge.nl/weblog/post/Nullable-ComboBox-in-Silverlight.aspx समाधान समाधान के साथ 2-तरफा डाटाबेसिंग का समर्थन करता है आइटम नहीं है। –

उत्तर

3

एक सेंटीनेल मूल्य का उपयोग करके अपना जीवन आसान बनाएं। यही है, आपके दृश्य मॉडल वर्ग का एक उदाहरण जो कुछ भी प्रस्तुत नहीं करता है।

+0

यह वही नहीं है जो मैं ढूंढ रहा हूं। मैं चाहता हूं कि चयनित आइटम 'नल' हो, न कि combobox के किसी अन्य आइटम की तरह एक उदाहरण। – Yannic

0

यदि आप मेरे ब्लॉग एंट्री here पर एक नज़र डालें, तो आप एक बाध्यकारी समाधान देख सकते हैं जिसके लिए आपको अपने वीएम को "संशोधित" करने की आवश्यकता नहीं है या डमी आइटम को उस संग्रह में जोड़ने की आवश्यकता नहीं है जो वास्तव में आपके डेटा के साथ फिट न हो ।

असल में, आप अपने एक्सएएमएल में एक कंपोजिट कोलेक्शन का उपयोग करते हैं, जो आपको आपके कॉम्बो-बॉक्स में संख्यात्मक मान रखने के लिए क्षमता (उदाहरण के लिए) देता है, और स्थान धारक को निर्दिष्ट करने के लिए "कृपया चुनें ..." टेक्स्ट देता है, जो यदि आप अपने मॉडल में संख्यात्मक क्षेत्रों को पूरी तरह से बाध्य कर रहे हैं और इस जादू मूल्य को जोड़ने के लिए उस पर भरोसा करते हैं तो आप ऐसा नहीं कर सकते हैं।

+2

मुझे लगता है कि मुझे पीट से असहमत होना है, न कि सिर्फ इसलिए कि आपने मुझे "पेशेवर डेवलपर" कहा है;) यह साधारण सेंटीनेल का उपयोग करने से कहीं अधिक काम है, और इसमें से बहुत सारे विचारों को प्रदूषित करते हैं। मुझे गलत मत समझो, मुझे लगता है कि यह निश्चित रूप से एक वैध विकल्प है। लेकिन मुझे लगता है कि मैं सेंटीनेल की सादगी पसंद करता हूं। इसके अलावा, चूंकि वीएम दृश्य का एक मॉडल है, यदि दृश्य को कुछ भी प्रस्तुत करने के लिए कुछ चाहिए तो मुझे नहीं लगता कि यह वीएम में प्रकट होने से बाहर है। मेरा 2 पी –

+0

मान लें कि आपके पास देशों की एक सूची है, आपका 'सेंटीनेल' कोई देश नहीं होना चाहिए? तो आप डेटाबेस को प्रदूषित कर रहे हैं। शायद मुझे कुछ समझ में नहीं आता है। – Yannic

+1

यदि आप से कनेक्ट करने के लिए वीएम का उपयोग कर रहे हैं, तो आपको डेटा को डेटाबेस में डालने की ज़रूरत नहीं है - आपको डेटाकॉन्टेक्स्ट सेट करने से पहले इसे जोड़ने की आवश्यकता है। जबकि मैं यहां केंट के पीओवी को समझता हूं, मुझे उससे असहमत होना पड़ता है क्योंकि यह सेंटीनल को आपके द्वारा बाध्यकारी डेटा के डेटाटाइप के अनुकूल होने के लिए सीमित करता है। मान लीजिए (जैसा कि मैंने ऊपर बताया है) कि आप पूर्णांक की एक सूची प्रदर्शित करना चाहते हैं, जिसे उपयोगकर्ता चुन सकते हैं, लेकिन आप उपयोगकर्ता को सूचित करने के लिए "कृपया चुनें ..." प्रदर्शित करना चाहते हैं कि चयन की आवश्यकता है, आपको बदलना होगा तारों के लिए इंक। –