代码之家  ›  专栏  ›  技术社区  ›  Skarab

如何在XAML的CommandParam中设置枚举值

  •  2
  • Skarab  · 技术社区  · 14 年前

    我有以下表示UI状态的枚举(我使用它来启用和禁用UI元素):

    enum Mode 
    {
     EDIT, RUN, REVIEW
    }
    

    我想通过Mode.EDIT 要在CommandParam中执行命令:

      <Button Grid.Column="6" VerticalAlignment="Top Command="{Binding Path=ChangeMode}" 
    CommandParameter="{StaticResource local:Mode.RUN}" />
    

    但我不知道怎么申报。正如您在按钮声明中看到的,我尝试使用 静态源 但它失败了。我对SL4和C还很陌生,所以我想我错过了什么。

    3 回复  |  直到 13 年前
        1
  •  3
  •   akjoshi HCP    10 年前

    我找到了解决办法。我在我的生活中创造了 MyViewModel 数据上下文 编辑 , ). 接下来,我将它们作为 DataContext

    CommandParameter="{Binding Path=EDIT}

    class MyViewModel
    {  
      public Mode EDIT {set; get;}
      public Mode RUN {set; get;}
      public Mode REVIEW {set; get;}
    
      MyViewModel()
     { 
       EDIT = Mode.EDIT;
        ...
     }
    } 
    
        2
  •  3
  •   Community CDub    8 年前

    在WPF中,我们可以这样做(在SL中可能不起作用)-

    <Button Grid.Column="6" Command="{Binding Path=ChangeMode}"
    CommandParameter="{x:Static local:Mode.RUN}" />
    

    Passing an enum value as command parameter from XAML

        3
  •  1
  •   darson1991    9 年前

    在silverlight x中:静态不起作用,所以我们可以这样做:

    <Button Command="{Binding Path=ChangeMode}">
        <Button.CommandParameter>
            <Mode>RUN</Mode>
        </Button.CommandParameter>
    </Button>
    
    推荐文章