2012-10-11 21 views
5

जब मैं इस कोड को आजमा रहा हूं तो मुझे उपर्युक्त त्रुटि मिल रही है। मैंने just my code देने का प्रयास किया लेकिन कोई उपयोग नहीं किया। (यह डिफ़ॉल्ट था)
अमान्य आर्ग्यूमेंट = '0' का मान 'चयनित इंडेक्स' के लिए मान्य नहीं है। पैरामीटर नाम: चयनित इंडेक्स

Here is my XML file

त्रुटि cmbProduct_SelectedIndexChanged स्थिति में है।

 cmbProduct --> combobox 
     cmbBrand --> combobox 

वैश्विक

 DataSet dsUpdate = new DataSet(); 

Form_Load

 dsUpdate.ReadXml(@"...\..\stock.xml"); 
     cmbProduct.DataSource = dsUpdate.Tables[0] 
      .DefaultView.ToTable(true, "productname");//.DefaultView; 
     cmbProduct.DisplayMember = "productname"; 
     cmbProduct.SelectedIndex = 0; 

cmbProduct_SelectedIndexChanged

 cmbBrand.Items.Clear(); 
     foreach (DataRow Row in dsUpdate.Tables[0].Select("productname='" + cmbProduct.Text + "'")) 
     { 
      //cmbBrand.SelectedIndex = i; 
      cmbBrand.Items.Add(Row["brandname"].ToString()); 
      //i++; 
     } 
     cmbBrand.SelectedIndex = 0; /*ERROR*/ 

कृपया
अग्रिम में धन्यवाद।

+0

करता cmbBrand के साथ "काम नहीं कर रहा सेट एक और धागा में DataSource"

उदाहरण

//Run in another thread myComboBox.DataSource = myDataSource; //not set 

ठीक उस में निश्चित रूप से Soem प्रविष्टियाँ से संबंधित है? क्या आप यह भी पुष्टि कर सकते हैं कि किस ऑब्जेक्ट प्रकार cmbBrand है? – Chris

+0

हां इसमें प्रविष्टियां हैं। जब मैं 'cmbbrand नहीं दे रहा हूं। चयनित Index = 0;' cmbProduct_SelectedIndexChanged' में यह प्रविष्टियां दिखा रहा है। लेकिन इसे पहले शून्य मूल्य नहीं दिखाना, मैंने 'cmbBrand.SelectedIndex = 0;' जोड़ा। और यह त्रुटि दे रहा है। –

उत्तर

5

समस्या है:

जब आप आवेदन शुरू, आप cmbBrand में आइटम नहीं है, लेकिन cmbProduct SelectedIndexChanged सक्रिय करता है।

इस प्रयास करें: Form1.Designer.cs से

निकालें SelectedIndexChanged का ईवेंट प्रारंभ। SelectedIndexChanged का ईवेंट प्रारंभ जब आप xml फ़ाइल से डेटा के साथ डेटासेट पॉप्युलेट

this.cmbProduct.SelectedIndexChanged += new System.EventHandler(this.cmbProduct_SelectedIndexChanged); 

उसके बाद,,: लाइन निम्नलिखित खोजने की कोशिश करें

dsUpdate.ReadXml(@"...\..\stock.xml"); 
cmbProduct.DataSource = dsUpdate.Tables[0].DefaultView.ToTable(true, "productname");//.DefaultView; 
cmbProduct.DisplayMember = "productname"; 
this.cmbProduct.SelectedIndexChanged += new System.EventHandler(this.cmbProduct_SelectedIndexChanged); 
cmbProduct.SelectedIndex = 0; 
+0

मैंने आपके साथ एक्सएमएल की कोशिश की, और काम! –

+0

जब मैं 'cmbBrand.SelectedIndex = 0 पर होवर करता हूं; 'यह कह रहा है कि इसमें' -1' है लेकिन जैसा कि आप मेरी एक्सएमएल फ़ाइल में देख सकते हैं, इसमें मूल्य हैं और जब भी मैं' cmbBrand 'के बिना चलाता हूं। चयनित Index = 0 ; ', मेरा फॉर्म cmbbrand में मान दिखा रहा है, उसके बाद यह '-1' नहीं रखता है। यह मैं समझ नहीं सकता। –

+0

संपादित उत्तर का प्रयास करें –

1

आप भी इस कोशिश कर सकते हैं। कम्बोबॉक्स डेटासोर्स सेट करने से पहले इसके बाइंडिंग कॉन्टेक्स्ट

cmbProduct.BindingContext = this.BindingContext; 
0

मुझे एक ही त्रुटि थी। मुझे लगता है कि इस त्रुटि के कुछ कारण हैं। तो मेरे त्रुटि

myComboBox.Invoke(new Action(() => myComboBox.DataSource = myDataSource)); 
संबंधित मुद्दे