मैं उनकी जांच की गई डेटा मॉडल पर बूलियन गुण के लिए बाध्य गुणों के साथ मेरी फार्म पर स का एक समूह है:WriteValue के साथ एक बुलियन बाध्यकारी अद्यतन करते समय मुझे प्रारूप अपवाद क्यों मिलेगा?
chk1.DataBindings.Add(new BindingValue(this, "Checked", "MyBooleanProperty1", false))
chk2.DataBindings.Add(new BindingValue(this, "Checked", "MyBooleanProperty2", false))
chk3.DataBindings.Add(new BindingValue(this, "Checked", "MyBooleanProperty3", false))
वहाँ भी है कि यह सुनिश्चित करता डेटाबाउंड मूल्य है स्क्रीन पर सभी चेक बॉक्स के लिए एक साझा ईवेंट हैंडलर सही मूल्य पर सही ढंग से सेट करें।
इच्छित प्रकार के लिए मूल्य को स्वरूपित नहीं कर सकता:
private void AllCheckboxes_CheckedChanged(object sender, EventArgs e) { var chk = ((CheckBox)sender); var binding = chk.DataBindings["Checked"]; if (binding != null) binding.WriteValue(); }
कुछ मामलों में, पहली बार के लिए इस प्रपत्र और बाइंडिंग लोड किए गए हैं, मैं एक अपवाद मिलता है।
System.Windows.Forms.Binding.PullData पर System.Windows.Forms.BindToObject.SetValue (वस्तु मूल्य) पर System.ComponentModel.ReflectPropertyDescriptor.SetValue (वस्तु घटक, वस्तु मूल्य) पर(बूलियन पुनः स्वरूपित, बूलियन बल) System.Windows.Forms.Binding.WriteValue पर()
यह पहली चेकबॉक्स घटना पर कार्रवाई करने के लिए ठीक से काम करता है, लेकिन फिर एक दूसरे के इस अपवाद फेंक देते हैं।
डेटा स्रोत मेरी डेटामॉडल
public interface IMyDataModel
{
bool MyBooleanProperty1 { get; set; }
bool MyBooleanProperty2 { get; set; }
bool MyBooleanProperty3 { get; set; }
}
की एक अंतरफलक है और मैं पुष्टि कर सकते हैं डेटा मॉडल ही ईवेंट हैंडलर में .WriteValue से पहले एक ब्रेकपाइंट सही सेटिंग के द्वारा ठीक से सेट है। मैं बाध्य बुलियन संपत्ति के सेटटर में ब्रेकपॉइंट भी डाल सकता हूं, और इसे सही ढंग से भी कहा जाता है।
अगर मैं सच के लिए बाध्य की FormattingEnabled
गुण सेट है, यह इस मुद्दे को ठीक करता है। लेकिन मुझे आश्चर्य है कि मुझे इसे पहले स्थान पर क्यों करना है, क्योंकि मैं यूआई ऑब्जेक्ट में संपत्ति को डेटा स्रोत पर bool
संपत्ति पर बाध्य कर रहा हूं।
मुझे इस मामले में यह अपवाद क्यों मिलेगा?
आप को सक्षम किया 'IsThreeState' संपत्ति के माध्यम से जा सकते हैं? –
नहीं, IsThreeState – Rachel
सेट नहीं है मैं 'IsThreeState' सेट करने का प्रयास करता हूं या अपने बाध्यकारी को शून्य करने वाला बूल बना देता हूं। मैं समझता हूं कि यह एक शून्य बाध्यकारी समस्या की तरह नहीं दिखता है, लेकिन मुझे चेकबॉक्स में शून्य प्रबंधन करने की उम्मीद है। –