XAML'den enum değerini komut parametresi olarak iletme


182

WPF komut parametresi olarak bir enum değeri, böyle bir şey kullanarak geçmek istiyorum:

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

SearchPageType bir numaralandırmadır ve bu hangi düğme arama komutunun çağrıldığını bilmek içindir.

Bu WPF'de mümkün mü yoksa enum değerini command parametresi olarak nasıl iletebilirsiniz?

Yanıtlar:


286

Bunu dene

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

local- XAML'deki ad alanı referansınız


Bu ad alanında my.namespace "MyEnum" adlı bir numaralandırma varsa, "local" nasıl tanımlanır?
Vering

172

Ayrıca, numaranız başka bir sınıfın içindeyse +operatörü kullanmanız gerektiğini unutmayın .

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

47

Bunun için özellik sözdizimi yerine özellik öğesi sözdizimini kullanabilirsiniz:

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

31

Ayrıca bir [ Flags] enum sağlamak istiyorsanız özellik öğesi sözdizimini kullanabilirsiniz:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.