/ / कैलिब्रर्न माइक्रो: मौजूदा कमांड का पुन: उपयोग करें - wpf, action, caliburn.micro, रूटेड-कमांड

कैलिब्रर्न माइक्रो: मौजूदा कमांड का पुन: उपयोग करें - wpf, action, caliburn.micro, रूटेड-कमांड

मेरे पास एक नियंत्रण के साथ एक सरल wpf आवेदन है(चलो एक बटन कहें) जो एक कमांड को फायर करता है (चलो एप्लिकेशन कमांड्स.कोपी कहते हैं)। मैं वर्तमान नियंत्रण केंद्रित नियंत्रण के अनुसार, वही नियंत्रण (बटन) संदर्भ संवेदनशील होना चाहता हूं, यानी, यह उचित कार्रवाई करता है (कॉपी कमांड भेजें)। इसलिए, यदि फोकस टेक्स्टबॉक्स पर है, तो आदेश टेक्स्टबॉक्स पर भेजा जाता है, जबकि यदि किसी अन्य नियंत्रण पर ध्यान केंद्रित किया जाता है, तो आदेश उसे भेजा जाता है। अब, मेरे पास एक और नियंत्रण है, एक कंटेंट कंट्रोल जिसका मॉडल एक्सएएमएल में कैलिबर्न माइक्रो के व्यू के माध्यम से सेट किया गया है। मॉडल = "{बाध्यकारी ...}" विशेषता।

मैं बटन की "संदर्भ संवेदनशीलता" को बनाए रखना चाहता हूं, यानी, कॉपी कमांड को ContentControl के ViewModel द्वारा नियंत्रित किया जाना चाहिए।

बाध्यकारी सेट करने के लिए एक प्रयास किया गया थामॉडल के दृश्य में उचित मॉडल की विधि। यह ठीक काम करता है, लेकिन दूसरी तरफ, कैलिबर्न माइक्रो के साथ समान स्थितियों को संभालने का सुझाया गया तरीका कमांड से बचने और इसके बजाय क्रियाओं का उपयोग करने के लिए प्रतीत होता है। क्या केवल क्रियाओं का उपयोग करके एक समान हैंडलिंग को कार्यान्वित करना संभव है? कैलिब्रर्न माइक्रो के साथ मौजूदा कमांड को एकीकृत करने का सुझाया गया तरीका क्या है?

अग्रिम में धन्यवाद!

उत्तर:

जवाब के लिए 0 № 1

डिफ़ॉल्ट कार्रवाई हमेशा नियंत्रण नाम से जुड़ी होती है

<Button x:Name="Copy" Content="Copy"/>

व्यूमोडेल में

public void Copy()
{
}

यदि आप एक ही बटन को कई फ़ंक्शन करने के लिए चाहते हैं तो आप इसे विधि में ही कर सकते हैं

public void Copy()
{
// check and get which control has focus

// copy content to the control that has focus
}