2012-02-19 13 views
5

मुझे लगता है कि निम्नलिखित कोड देखा:बाध्यकारी IsEnabled वैकल्पिक है जब बाध्यकारी आदेश?

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/> 

समान रूप से कार्य करता है:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}"> 

मतलब है कि CanExecuteShowTimbresCommand स्वचालित रूप से IsEnabled संपत्ति के लिए बाध्य है। क्या यह सच है और क्यों?

उत्तर

10

आमतौर पर नियंत्रित करता है स्वीकार जो एक Commandfalse को IsEnabled सेट हो जाएगा अगर आदेश के CanExecutefalse है, कि इसके लिए बस इतना ही है।

MSDN:

आदेशों की एक अन्य उद्देश्य से संकेत मिलता है कि क्या एक कार्रवाई उपलब्ध है। [...] एक बटन CanExecuteChanged ईवेंट की सदस्यता ले सकता है और CanExecuteरिटर्न लौटाता है या सत्य पर सक्षम होने पर सक्षम हो सकता है।

+0

धन्यवाद ... इसका मतलब है कि मैं बहुत सारे एक्सएएमएल कोड को हटा सकता हूं। –

+1

@MichelKeijzers: यदि आप अब तक हमेशा 'IsEnabled' से निपटते हैं जो वास्तव में मामला है। –

+0

हां, वर्तमान में हर जगह एक ही कमांड के लिए IsEnabled = CanExecute के साथ एक साथ बाध्यकारी आदेश है। मुझे लगता है कि उत्तर में आपके द्वारा किए गए अतिरिक्त संपादन को स्वचालित रूप से किया जाता है। –

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

  • कोई संबंधित समस्या नहीं^_^