Melewati nilai enum sebagai parameter perintah dari XAML


182

Saya ingin memberikan nilai enum sebagai parameter perintah di WPF, menggunakan sesuatu seperti ini:

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

SearchPageType adalah enum dan ini untuk mengetahui dari mana perintah pencarian tombol dipanggil.

Apakah ini mungkin di WPF, atau bagaimana Anda bisa memberikan nilai enum sebagai parameter perintah?

Jawaban:


286

Coba ini

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

local- adalah referensi namespace Anda di XAML


Jika saya memiliki enum yang disebut "MyEnum" di namespace my.namespace ini, bagaimana cara mendefinisikan "lokal"?
Vering

172

Juga ingat bahwa jika enum Anda berada di dalam kelas lain, Anda perlu menggunakan +operator.

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

47

Anda bisa menggunakan sintaks elemen properti alih-alih sintaks atribut untuk ini:

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

31

Juga jika Anda ingin memberikan Flagsenum [ ] Anda dapat menggunakan sintaks elemen properti:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.