質問

UIの状態を表す次の列挙があります(UI要素を有効にして無効にするために使用します)。

enum Mode 
{
 EDIT, RUN, REVIEW
}

CommandParamでコマンドにモードを合格したい:

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

しかし、私はそれを宣言する方法がわかりません。ボタン宣言でわかるように、私は使用しようとします staticresource しかし、それは失敗します。私はSL4とC#を非常に初めてにしているので、何かを逃したと思います。

役に立ちましたか?

解決

解決策を見つけました。私は自分の中に作成しました MyViewModel (私の datacontext)3パブリック属性(タイプモードの)およびコンストラクターでそれらを初期化する(値付き 編集, 走る, レビュー)。次に、私はそれらを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;
    ...
 }
} 

他のヒント

WPFでは、このようなことができます(SLでは機能しない可能性があります) -

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

詳細については、この質問を確認してください -xamlからコマンドパラメーターとして列挙値を渡す

Silverlight x:staticが機能しないので、このようなsthを行うことができます:

<Button Command="{Binding Path=ChangeMode}">
    <Button.CommandParameter>
        <Mode>RUN</Mode>
    </Button.CommandParameter>
</Button>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top