c# - CommandManager Executed Events don't fire for custom ICommands -
WPF कमांडमैनेजर आपको निम्नलिखित (छद्म ईश-कोड) करने की अनुमति देता है:
& Lt; बटन नाम = "SomeButton" कमांड = "{बाध्यकारी पथ = देखेंमोडेल कॉमांड}" / & gt;
और कोड-पीछे में:
निजी शून्य InitCommandEvents () {CommandManager.AddExecutedEventHandler (this.SomeButton, SomeEventHandler);
SomeEventHandler
कभी नहीं बुलाता है।
मुझे यह कोशिश करने और करने में कुछ गड़बड़ जैसा नहीं लगता है, लेकिन अगर आप समझते हैं कि कमांडमैनेजर के अंदर क्या होता है। एक्साइक्टेड ईवेंटहैंडलर
, यह समझ में आता है कि ऐसा क्यों नहीं है उस तथ्य में जोड़ें कि दस्तावेज़ीकरण स्पष्ट रूप से बताता है कि कमांडमैनेजर केवल रूट कॉमांड्स के साथ काम करता है।
फिर भी, यह मुझे थोड़ी देर के लिए निराश था और मुझे इस प्रश्न के लिए प्रेरित किया:
< मजबूत> आप क्या सुझाव देते हैं कि कमान मैनेजर कस्टम आईकॉमैंड्स का समर्थन नहीं करता है? विशेषकर यदि आप किसी आदेश के निष्पादन के आसपास व्यवहार जोड़ना चाहते हैं?
अभी के लिए, मैं बटन क्लिक ईवेंट से पीछे कोड में मैन्युअल रूप से कमांड को आग करता हूं।
मैं आम तौर पर केवल उप-वर्ग रूटिंग कॉमांड और फिर - स्क्रैच से एक ICommand को लागू करने के बजाय इसकी कार्यक्षमता का उपयोग करें। फिर यह कमान प्रबंधक, आदि के साथ अच्छी तरह से काम करता है, और हर कोई खुश है।
दूसरी तरफ, अगर आप स्क्रैच से आईसीओएमएमएम को लागू करते हैं, तो मुझे लगता है कि कमांडमैनेजर की जरूरत नहीं है। अत्यावश्यकः EventHandler: आपका कस्टम आईकॉमांड आसानी से सूचनाओं के लिए पंजीकृत होने के अपने तरीके को उजागर कर सकता है जब कमांड निष्पादित होता है। वास्तव में, सबसे कस्टम ICommand कार्यान्वयन आदेश निष्पादन से निपटने में प्राथमिक तरीके के रूप यह करते हैं।
किसी भी तरह से यह नहीं लगता है आप कभी भी एक ही समय में दोनों कस्टम ICommand कार्यक्षमता और CommandManager समर्थन की आवश्यकता होगी।
Comments
Post a Comment