我有以下枚举表示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}" />
但我不知道如何申报。正如您在按钮声明中看到的,我尝试使用 StaticResource ,但它失败了。我对SL4和C#都很陌生,所以我想我错过了一些东西。
答案 0 :(得分:3)
我找到了解决方案。我在我的MyViewModel
(我的 DataContext )3个公共属性(类型为Mode)中创建并在构造函数中初始化它们(值为 EDIT , RUN , REVIEW )。接下来,我将它们绑定在XAML中作为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;
...
}
}
答案 1 :(得分:3)
在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