2011-04-07 4 views
21
  1. क्या कोई ऐसी घटना है जैसे Changed कि मैं दोनों घटनाओं को एक साथ संभालने के लिए उपयोग कर सकता हूं?WPF चेकबॉक्स की चेक और अनचेक स्थिति के लिए अलग-अलग ईवेंट: क्यों?

  2. वे इस तरह क्यों अलग हो गए हैं?
    क्या ऐसा इसलिए है क्योंकि दोनों के लिए एक भी घटना होने के लिए आपको नाम से नियंत्रण का संदर्भ देना होगा, जिसे आपको XAML में निर्दिष्ट करने की आवश्यकता होगी, और इससे अव्यवस्था बढ़ जाएगी?

उत्तर

26
  1. नहीं सीधे। हालांकि, आप दोनों के लिए एक ही ईवेंट हैंडलर का उपयोग कर सकते हैं, और IsCheckedsender पैरामीटर की संपत्ति (इसे CheckBox या ToggleButton पर कास्टिंग करने के बाद) से पूछ सकते हैं।
  2. डब्ल्यूपीएफ विशिष्ट तकनीक, जैसे स्टोरीबोर्ड, EventTriggers और इसी तरह के लिए दो कार्यक्रमों की आवश्यकता है। EventTriggers राज्य के बीच अंतर नहीं कर सकता, केवल घटना के द्वारा, इसलिए दो अलग-अलग आयोजनों की आवश्यकता होती है।

एक सामान्य टिप्पणी पर: मैं बिल्कुल भी घटनाओं का उपयोग नहीं होगा - मैं, अपने ViewModel पर एक उचित संपत्ति को IsChecked संपत्ति के लिए बाध्य होगा सब पर एक न्यूनतम (आदर्श रूप में कोई कस्टम कोड के लिए अपने कोड-पीछे रखते हुए)।

10

विभाजन उन लोगों के लिए अधिक ग्रैन्युलरिटी देता है जिन्हें इसकी आवश्यकता है (जो नहीं करते हैं उनके लिए चोट नहीं पहुंचा सकते हैं) और यदि आप चाहते हैं कि आप दोनों घटनाओं को एक हैंडलर से संभाल सकें।

<CheckBox Content="CheckBox" Name="checkBox1" Checked="checkBox1_changed" Unchecked="checkBox1_changed" /> 
1

उदाहरण के लिए एक स्टोरीबोर्ड शुरू करने के लिए जब चेक किया गया और अनचेक किए जाने पर इसे रोकें।

संबंधित मुद्दे