Передача значення enum як командного параметра від XAML


182

Я хочу передати значення enum як командний параметр у WPF, використовуючи щось подібне:

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

SearchPageType є перерахунком, і це знати, з якої кнопки пошуку викликається команда пошуку.

Чи можливо це у WPF, або як можна передати значення перерахунку як командний параметр?

Відповіді:



171

Також пам’ятайте, що якщо ваш перелік знаходиться в іншому класі, вам потрібно скористатися +оператором.

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

46

Ви можете використовувати для цього синтаксис елемента властивості замість синтаксису атрибутів:

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

31

Крім того, якщо ви хочете надати [ Flags] перерахунок, ви можете використовувати синтаксис елемента властивості:

<Button>
  <Button.CommandParameter>
    <SearchPageType>First,Second</SearchPageType>
  <Button.CommandParameter>
</Button>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.