2010-08-18 34 views
2

在CommandParam枚舉值我已表示UI的狀態(I用它來啓用和禁用UI元素)以下枚舉:如何在XAML

enum Mode 
{ 
EDIT, RUN, REVIEW 
} 

我想傳遞模式。編輯命令CommandParam:

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

但我不知道如何聲明它。正如你在按鈕聲明中看到的那樣,我嘗試使用StaticResource但它失敗。我對SL4和C#很陌生,所以我想我錯過了一些東西。

回答

3

我找到了解決方案。我在MyViewModel(我的DataContext)3個公共屬性(類型模式)的創建,並在構造函數(其值編輯RUN回顧)初始化它們。接下來,我在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

in silverlight x:Static不起作用,所以我們可以做...... ike this:

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