2008-12-11 11 views
160

Chcę przekazać wartość enum jako parametr polecenia w WPF, używając coś takiego:Przechodząc wartość enum jako parametr polecenia z XAML

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

SearchPageType jest enum, a to jest, aby wiedzieć, z którego poszukiwanie przycisk polecenie jest wywoływane.

Czy jest to możliwe w WPF, lub jak przekazać wartość wyliczenia jako parametr polecenia?

Odpowiedz

231

Spróbuj

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

local - jest Twój namespace reference w XAML

42

można wykorzystać element składni właściwość zamiast składni atrybutu na to:

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

Należy również pamiętać, że jeśli enum jest w innej klasie, musisz użyć operatora +.

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

You Rock !!! Nauczyłeś mnie czegoś, nigdy wcześniej nie widziałem użycia operatora +. Wielkie dzięki!!! – Nicolas

+0

Wielkie dzięki! Skąd przyszła wiedza? – Sheen

25

Także jeśli chcesz zapewnić [Flags] ENUM można użyć składni elementu własności:

<Button> 
    <Button.CommandParameter> 
    <SearchPageType>First,Second</SearchPageType> 
    <Button.CommandParameter> 
</Button> 
+1

To użyteczne, nigdy nie wymagało tego, ale dobrze wiedzieć, że to możliwe. – akjoshi

+0

Dokładnie to, czego szukałem; Dziękuję Ci. – Will

Powiązane problemy