Übergabe eines Aufzählungswerts als Befehlsparameter von XAML


182

Ich möchte einen Aufzählungswert als Befehlsparameter in WPF übergeben und dabei Folgendes verwenden:

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

SearchPageType ist eine Aufzählung und dies ist zu wissen, von welchem ​​Schaltflächensuchbefehl aufgerufen wird.

Ist dies in WPF möglich oder wie können Sie einen Aufzählungswert als Befehlsparameter übergeben?

Antworten:


283

Versuche dies

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

local- ist Ihre Namespace-Referenz in der XAML


Wenn ich in diesem Namespace my.namespace eine Aufzählung mit dem Namen "MyEnum" habe, wie definiere ich "local"?
Vering

171

Denken Sie auch daran, dass Sie den +Operator verwenden müssen, wenn sich Ihre Aufzählung in einer anderen Klasse befindet .

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

46

Sie können hierfür die Eigenschaftselementsyntax anstelle der Attributsyntax verwenden:

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

31

Wenn Sie eine [ Flags] -Aufzählung bereitstellen möchten, können Sie auch die Eigenschaftselementsyntax verwenden:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.