XAML से कमांड पैरामीटर के रूप में एनम वैल्यू पास करना


182

मैं WPF में कमांड पैरामीटर के रूप में एनम वैल्यू पास करना चाहता हूं, कुछ इस तरह से:

<Button 
    x:Name="uxSearchButton" 
    Command="{Binding Path=SearchMembersCommand}" 
    CommandParameter="SearchPageType.First"
    Content="Search">
</Button>

SearchPageType एक एनम है और यह जानना है कि किस बटन से कमांड सर्च किया गया है।

क्या WPF में यह संभव है, या आप कमांड पैरामीटर के रूप में एनम वैल्यू कैसे पास कर सकते हैं?

जवाबों:


284

इसे इस्तेमाल करे

<Button CommandParameter="{x:Static local:SearchPageType.First}" .../>

local- XAML में आपका नेमस्पेस रेफरेंस है


अगर मेरे पास इस नामस्थान my.namespace में "MyEnum" नामक एक एनम है, तो "स्थानीय" को कैसे परिभाषित करें?
वेरिंग

171

यह भी याद रखें कि यदि आपका एनम किसी अन्य वर्ग के अंदर है, तो आपको +ऑपरेटर का उपयोग करने की आवश्यकता है ।

<Button CommandParameter="{x:Static local:MyOuterType+SearchPageType.First}".../>

46

आप इसके लिए विशेषता सिंटैक्स के बजाय गुण तत्व सिंटैक्स का उपयोग कर सकते हैं:

<Button x:Name="uxSearchButton"
        Command="{Binding Path=SearchMembersCommand}"
        Content="Search">
    <Button.CommandParameter>
        <SearchPageType>First</SearchPageType>
    </Button.CommandParameter>
</Button>

31

यदि आप एक [ Flags] एनम प्रदान करना चाहते हैं तो आप संपत्ति तत्व सिंटैक्स का उपयोग कर सकते हैं:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.