मैं किसी विशेष चर परिवर्तन के मूल्य में बटन की दृश्यता टॉगल करना चाहता हूं। क्या कोई वैरिएबल में किसी प्रकार का प्रतिनिधि संलग्न करने का कोई तरीका है जो वैल्यू चेंज करते समय स्वचालित रूप से निष्पादित होता है?सी # में परिवर्तनीय परिवर्तनों के मूल्य के दौरान कोड कैसे निष्पादित कर सकता हूं?
उत्तर
नहीं, आप सी # में असाइनमेंट ऑपरेटर ओवरलोडिंग जैसी चीजें नहीं कर सकते हैं। सबसे अच्छा आप कर सकते हैं वैरिएबल को किसी प्रॉपर्टी में बदलना और एक विधि या प्रतिनिधि को सेट करना या उसके सेटर में एक ईवेंट बढ़ा देना।
private string field;
public string Field {
get { return field; }
set {
if (field != value) {
field = value;
Notify();
}
}
}
यह गुण परिवर्तन ट्रैक करने के लिए कई व्यवस्थाएं द्वारा (WPF DependencyProperty
सिस्टम की तरह) किया जाता है।
ऐसा करने का कोई तरीका नहीं है। वैरिएबल मूल रूप से मेमोरी में बस होते हैं जो आपका एप्लिकेशन लिखता है।
बजाय एक संपत्ति का उपयोग करें:
string myVariable;
public string MyVariable
{
get
{
return myVariable;
}
set
{
myVariable = value;
MyVariableHasBeenChanged();
}
}
private void MyVariableHasBeenChanged()
{
}
बस एक छोटा सा अवलोकन, आपके द्वारा इसे बदलने के बाद "MyVariableHasBeenChanged" पर कॉल करना बेहतर होगा। इस तरह आप विधि में इसके साथ कुछ कर सकते हैं और आप असाइनमेंट में फेंकने वाले अपवाद के मामले का सामना कर सकते हैं। –
निश्चित रूप से बेहतर (और शायद एकमात्र उपयोगी तरीका)। धन्यवाद। – weiqure
आप या तो (जहां चर रहा है) अपने मॉडल में जीयूआई के लिए एक संदर्भ है और सीधे सेटर विधि में जीयूआई परिवर्तन करते हैं, या आप अपने जीयूआई का पालन करना एक पर्यवेक्षक के माध्यम से आपका मॉडल, और सेटर्स में पर्यवेक्षकों को देखने योग्य मॉडल आग घटनाएं हैं। पूर्व में स्पेगेटी कोड का अंततः नेतृत्व होगा, क्योंकि आप मॉडल और दृश्य के बीच अधिक से अधिक प्रत्यक्ष लिंक जोड़ते हैं, और इस प्रकार इन्हें केवल घर के औजारों और सरल कार्यक्रमों के लिए उपयोग किया जाना चाहिए।
Observer pattern का उपयोग करें। यहां another reference है।
क्या आप इस समस्या के समाधान के रूप में पर्यवेक्षक पैटर्न के लिए नकारात्मक वोट को उचित ठहरा सकते हैं? –
आप सही हैं और डाउन-वोटर को अपना सिर लटका देना चाहिए। अपने सबसे सरल रूप में एक पर्यवेक्षक सही पैटर्न है, यह वास्तव में डब्ल्यूपीएफ का उपयोग करता है, इसलिए WPF 'क्या' बदल गया है, यह भी बताने की आवश्यकता है। मैं आपको हल करने के लिए +1 कर दूंगा। –
डाउनवोट क्योंकि यह एक लिंक-केवल जवाब है, मुझे संदेह है। – Blorgbeard
आप डेटा बाध्यकारी का उपयोग भी कर सकते हैं: in WPF, Windows Forms में। यह आपको वस्तुओं की गुण और इसके विपरीत के आधार पर जीयूआई की स्थिति बदलने की अनुमति देता है।
- 1. मैं डेटाबेस में संग्रहीत कोड कैसे निष्पादित कर सकता हूं?
- 2. एंड्रॉइड: परिवर्तनीय परिवर्तनों के लिए सुनना
- 3. क्या मैं सी कोड के संकलन के दौरान परिभाषित मैक्रोज़ देख सकता हूं?
- 4. मैं एक गैर-अवरुद्ध प्रणाली कैसे निष्पादित कर सकता हूं।()?
- 5. मैं PHP में बिल्कुल एक बार कोड के ब्लॉक को कैसे निष्पादित कर सकता हूं?
- 6. मैं PHP में समय के 33% कोड को यादृच्छिक रूप से कैसे निष्पादित कर सकता हूं?
- 7. मैं सी में मॉनीटर कैसे कोड कर सकता हूं?
- 8. परिवर्तनों के लिए मैं SQL सर्वर डेटाबेस को कैसे लॉक कर सकता हूं?
- 9. परिवर्तनों के लिए मैं विंडोज निर्देशिका की निगरानी कैसे कर सकता हूं?
- 10. क्या मैं संकलन के दौरान आउटपुट भेजने के लिए सी ++ प्रीप्रोसेसर प्राप्त कर सकता हूं?
- 11. एक गिट रिबेस के दौरान, मैं मूल कैसे रख सकता हूं और परिवर्तनों को त्याग सकता हूं?
- 12. मैं शैल स्क्रिप्ट वैरिएबल के अंदर संग्रहीत पर्ल कोड कैसे निष्पादित कर सकता हूं?
- 13. MySQL का उपयोग करके मैं शीर्ष% दैनिक मूल्य परिवर्तनों की गणना कैसे कर सकता हूं?
- 14. परीक्षण कक्षा चलाने के दौरान मैं प्रबंधित ट्रिगर को निष्पादित करने से कैसे रोक सकता हूं?
- 15. क्या मैं कोड परिवर्तनों को दिखाने के लिए ग्रहण स्थापित कर सकता हूं
- 16. चर के मूल्य के आधार पर कार्य निष्पादित करना - सी ++
- 17. कोड में DataGridTextColumn का बाध्यकारी कैसे सेट कर सकता हूं?
- 18. मैं emacs का उपयोग कर सी ++ स्रोत कोड को दोबारा कैसे कर सकता हूं?
- 19. सी # डेटाटेबल आइटमअरे रिटर्न '{}' - मैं शून्य मूल्य के लिए कैसे परीक्षण कर सकता हूं?
- 20. मैं बड़े कोड बेस गुणवत्ता में परिवर्तनों को कैसे देख सकता हूं?
- 21. प्रतिक्रिया के इंतजार के दौरान GWT AsyncCallback निष्पादित करेगा?
- 22. एक परिवर्तनीय मूल्य सकारात्मक
- 23. मैं एक्सएमएल :: ट्विग के हैंडलर के साथ तर्क कैसे पास कर सकता हूं और मूल्य वापस कर सकता हूं?
- 24. मैं सी # के साथ कोड में डेटा बाध्यकारी कैसे कर सकता हूं?
- 25. लूप के दौरान सी ++ में अंतिम पुनरावृत्ति को मैं कैसे पहचान सकता हूं?
- 26. मैं सी # कंसोल एप्लिकेशन में सीएमडी कमांड कैसे निष्पादित कर सकता हूं?
- 27. जावास्क्रिप्ट में परिवर्तनीय परिवर्तन के लिए मैं प्रोग्राम कैसे इंतजार कर सकता हूं?
- 28. मैं जेएक्स-आरएस सामग्री बातचीत के दौरान किए गए निर्णयों को कैसे ओवरराइड कर सकता हूं?
- 29. मैं प्रतिशत चिह्न के बिना प्रतिशत के रूप में मूल्य को कैसे प्रारूपित कर सकता हूं?
- 30. मैं समांतर समानांतर में एनिमेशन निष्पादित करने के लिए jquery कैसे प्राप्त कर सकता हूं?
धन्यवाद मेहदद। – Rohit
ऐसा करने के लिए एक उत्कृष्ट आम तकनीक 'INotifyPropertyChanged' इंटरफ़ेस है। –