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.