मैं ऑटो-जनरेटिंग कोड हूं जो विन्यास (टेक्स्टबॉक्स, डेटटाइमपिकर्स इत्यादि) के आधार पर एक विनफॉर्म संवाद बनाता है। इन संवादों पर नियंत्रण सहेजे गए डेटासेट से पॉप्युलेट किए जाते हैं औररनटाइम पर, मैं कैसे जांच सकता हूं कि कोई संपत्ति केवल पढ़ी गई है या नहीं?
को विभिन्न नियंत्रण वस्तुओं (कस्टम या अन्य) के लिए सेट सेट और गुण प्राप्त करने की आवश्यकता होती है।
//Upon opening of form - populate control properties with saved values
MyObject.Value = DataSource.GetValue("Value");
//Upon closing of form, save values of control properties to dataset.
DataSource.SetValue("Value") = MyObject.Value;
अब यह ठीक है, लेकिन केवल पढ़ने के लिए क्या गुण हैं? मैं संपत्ति के नतीजे को सहेजना चाहता हूं लेकिन यह जानने की जरूरत है कि कोड उत्पन्न नहीं करना है जो इसे पॉप्युलेट करने का प्रयास करेगा।
//Open form, attempt to populate control properties.
//Code that will result in 'cannot be assigned to -- it is read only'
MyObject.HasValue = DataSource.GetValue("HasValue");
MyObject.DerivedValue = DataSource.GetValue("Total_SC2_1v1_Wins");
//Closing of form, save values.
DataSource.SetValue("HasValue") = MyObject.HasValue;
याद रखें कि मुझे उस वस्तु के प्रकार को नहीं पता है जिसे मैंने रनटाइम तक तुरंत चालू किया है।
मैं (रनटाइम पर) एक पठनीय संपत्ति की पहचान कैसे कर सकता हूं?
मेरी राय में, उपयोगकर्ता आपके यूआई फॉर्म से एक संपत्ति को संशोधित नहीं कर सकते हैं यदि यह पढ़ा गया हो। ऐसा लगता है कि वर्तमान में सभी गुणों को फ़ॉर्म पर संपादित करने की अनुमति है, और आप उन्हें सहेजते समय जांचते हैं? –
आपके कथन में सत्य, लेकिन यह स्वतः उत्पन्न कोड है। त्रुटि संकलन समय पर है। एकमात्र समय जब मुझे "असाइन नहीं किया जा सकता" तब होगा जब कोड उत्पन्न होता है, जो नियंत्रण से संबंधित गुणों को पॉप्युलेट कर रहा है, इस प्रकार गलती से एक संरक्षित संपत्ति को सहेजे गए गुण को असाइन कर रहा है। – MoSlo