2008-09-03 20 views
5

में आइटम मैं ASP.NET में पता लगाएं मैंWPF ComboBox

DropDownList1.Items.FindByText 

वहां भी इसी तरह विधि मैं कोई ComboBox के लिए WPF में उपयोग कर सकते हैं है का उपयोग करके एक DropDownList के आइटम मिल सकता है?

यहां परिदृश्य है।

मेरे पास RestrictionFormat नामक एक सारणी है जिसमें RestrictionType नामक कॉलम होता है, यह प्रकार एक तालिका के लिए एक विदेशी कुंजी है जो इन मानों को संग्रहीत करता है।

मेरे संपादक आवेदन में मैं लिख रहा हूं, जब उपयोगकर्ता कॉम्बोबॉक्स से यह प्रतिबंध का चयन करता है (यह ठीक काम करता है), मैं संपादन के लिए विवरण खींच रहा हूं। मैं यह सुनिश्चित करने के लिए एक दूसरा कॉम्बोबॉक्स का उपयोग कर रहा हूं कि उपयोगकर्ता संपादन करते समय केवल एक प्रतिबंध प्रकार का चयन करता है। मेरे पास पहले से ही RestrictionType तालिका से दूसरी combobox बाध्य संपत्ति है, लेकिन मुझे रिकॉर्ड में निर्दिष्ट मान से मेल खाने के लिए चयनित इंडेक्स को बदलने की जरूरत है।


यहां परिदृश्य है।

मेरे पास RestrictionFormat नामक एक सारणी है जिसमें RestrictionType नामक कॉलम होता है, यह प्रकार एक तालिका के लिए एक विदेशी कुंजी है जो इन मानों को संग्रहीत करता है।

मेरे संपादक आवेदन में मैं लिख रहा हूं, जब उपयोगकर्ता कॉम्बोबॉक्स से यह प्रतिबंध का चयन करता है (यह ठीक काम करता है), मैं संपादन के लिए विवरण खींच रहा हूं। मैं यह सुनिश्चित करने के लिए एक दूसरा कॉम्बोबॉक्स का उपयोग कर रहा हूं कि उपयोगकर्ता संपादन करते समय केवल एक प्रतिबंध प्रकार का चयन करता है। मेरे पास पहले से ही RestrictionType तालिका से दूसरी combobox बाध्य संपत्ति है, लेकिन मुझे रिकॉर्ड में निर्दिष्ट मान से मेल खाने के लिए चयनित इंडेक्स को बदलने की जरूरत है।

क्या यह समझ में आता है?

+0

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

उत्तर

9

क्या आप ItemContainerGenerator का उपयोग कर सकते हैं?

ItemContainerGenerator में एक कंटेनरफ्रोइटम विधि है जो ऑब्जेक्ट पैरामीटर लेती है।

आइटम द्वारा:

ComboBoxItem item = 
    (ComboBoxItem)myComboBox.ItemContainerGenerator.ContainerFromItem(myObject); 
+0

हे तुमने मुझे इसे हराया :) – Arcturus

2

WPF में आप FindName विधि का उपयोग कर सकते हैं।

XAML: आप UI automation उपयोग कर सकते हैं

<ComboBox Name="combo"> 
     <ComboBoxItem Name="item1" >1</ComboBoxItem> 
     <ComboBoxItem Name="item2">2</ComboBoxItem> 
     <ComboBoxItem Name="item3">3</ComboBoxItem> 
    </ComboBox> 

कोड-पीछे फ़ाइल

item1.Content = "New content"; // Reference combo box item by name 
    ComboBoxItem item = (ComboBoxItem)this.combo.FindName("item1"); // Using FindName method 

अपनी सामग्री से आइटम खोजने के लिए।

1

चयनित इंडेक्स को बांधने की कोशिश करने के बजाय क्यों आप कॉम्बोबॉक्स में चयनित इटैम को रिकॉर्ड में मूल्य के साथ बाध्य नहीं करते हैं?

दूसरे शब्दों में

, चयनित 'रिकॉर्ड' के लिए ComboBox की DataContext (या उसके माता-पिता) की स्थापना की और 'रिकॉर्ड' पर एक संपर्क में संपत्ति के लिए ComboBox पर SelectedItem बाँध ..

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

0

आप दो तरह से बता गया आइटम प्राप्त कर सकते हैं: आप पूर्ण उद्देश्य यह है कि आपके बता गया होता है के लिए एक संदर्भ (या इसे फिर से संगठित करने के लिए एक रास्ता) है, तो आप निम्न का उपयोग कर सकते :

ComboBoxItem item = (ComboBoxItem) control.ItemContainerGenerator.ContainerFromItem(control.SelectedItem); 

सूचकांक द्वारा:

ComboBoxItem item = (ComboBoxItem) control.ItemContainerGenerator.ContainerFromIndex(1); 
0

आप के लिए के रूप में कुछ संदर्भ दे सकते हैं वास्तव में क्या आप कर रहे हैं टीआर करने के लिए यिंग?

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

सबसे खराब स्थिति, आप उस संग्रह पर खोज कर सकते हैं जिसमें आप लिंक टू ऑब्जेक्ट्स का उपयोग करके अपने कॉम्बोबॉक्स को बाध्य करते हैं।

चयनित इटैम के साथ कॉम्बोबॉक्स इटैम (यानी, जब आप आइटमसोर्स को बांधते हैं तो WPF द्वारा दृश्यों के पीछे उत्पन्न तत्व) को गलती न करें, जो आपके द्वारा बाध्य किए गए संग्रह में वास्तविक वस्तु है। आमतौर पर जब आप इसका उपयोग नहीं करते हैं तो WPF के साथ अधिकांश समस्याओं का स्रोत होता है। वास्तविक कॉम्बोबॉक्स Item खोजने की आवश्यकता होने पर अनमोल कुछ मामले हैं।