2

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# にまったく慣れていないので、何かを見逃していると思います。

4

3 に答える 3

3

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

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

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

于 2012-01-11T05:49:12.857 に答える
3

私は解決策を見つけました。私はMyViewModel(私のDataContext)3つのパブリック属性(モード型)を作成し、コンストラクターでそれらを初期化しました(値はEDITRUNREVIEW)。次に、これらを の通常のプロパティとして 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;
    ...
 }
} 
于 2010-08-19T12:52:04.993 に答える
1

Silverlight では x:Static が機能しないため、次のように sth を実行できます。

<Button Command="{Binding Path=ChangeMode}">
    <Button.CommandParameter>
        <Mode>RUN</Mode>
    </Button.CommandParameter>
</Button>
于 2015-12-21T09:57:08.473 に答える