2009-09-09 4 views
8

क्या IDataError जानकारी Winforms एप्लिकेशन में ठीक से उपयोग की जा सकती है? अतीत में मैं सामान्य तरीके से बाध्यकारी कर रहा था (1) और विशेष नियंत्रण की ऑनवालिटिंग घटना में सत्यापन किया। मैं डेटा सत्यापन को डोमेन मॉडल में ले जाना चाहता हूं ताकि मैं आसानी से उपयोगकर्ता इंटरफेस को स्वैप कर सकूं और ताकि सभी तर्क एक ही स्थान पर हो।Winforms में IDataErrorInfo

मैं IDataErrorInfo में देख रहा था लेकिन मुझे जो कुछ भी मिल रहा है वह WPF के साथ सौदा करता है और विकास में ऐप सख्ती से एक Winforms ऐप है।

मैंने यह भी देखा कि डब्ल्यूपीएफ में उपयोग की जाने वाली बाध्यकारी System.Windows.Data और बाध्यकारी है जो मैं हमेशा उपयोग कर रहा हूं System.Windows.Forms (जो मुझे लगता है कि ऐसा नहीं है) इसे संसाधन के रूप में जोड़ने का प्रयास करें - मैं 3.5 का उपयोग कर रहा हूं)। संपत्ति के अलावा "ValidatesOnDataErrors" दोनों के बीच एक अंतर है?

(1) हमेशा की तरह किया जा रहा है: WinForms में

myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property")); 

उत्तर

9

यह विंडोज फॉर्म में ErrorProvider घटक के साथ काम करता है।

एक पूर्ण, लेकिन बहुत ही सरल और लघु ट्यूटोरियल के लिए, this blog post देखें।

+0

+1 शानदार ब्लॉग पोस्ट। मेरी सभी मौजूदा विपत्तियों को ठीक किया। आपका बहुत बहुत धन्यवाद। –

+4

ऐसा लगता है कि * शानदार ब्लॉग पोस्ट * का लिंक टूटा हुआ है: यह लिंक केवल अप्रचलित जवाब देता है। –

+0

@ Bjørn-RogerKringsjå यह वास्तव में एक लिंक-केवल जवाब नहीं है। 'ErrorProvider' के बारे में सुझाव लिंक के बिना इसका उत्तर देता है। – Taryn

1

हाँ, IDataErrorInfo काम करता है। उदाहरण के लिए, DataGridView यह स्वचालित रूप से प्रति पंक्ति और प्रति-सेल दोनों का उपयोग करेगा। लेकिन यह कार्यान्वयन-विशिष्ट है, और स्वचालित रूप से अन्य बाइंडिंग पर लागू नहीं है। मैंने एक बार त्रुटि कोड प्रदाता को जोड़ने के लिए कुछ कोड लिखा और परिवर्तन घटनाओं के माध्यम से काम किया, लेकिन मेरे पास दुर्भाग्य से हाथ नहीं है। लेकिन मुझे याद है कि यह बहुत बड़ा नहीं था।