パラメータを含むRelayCommand

私は、アプリケーションでMVVM Lightツールキットを使用しており、コマンドを渡す方法について学習しようとしています。 私は次のXAMLコードスニペットを持っています:


    <button Content="Info" Width="40" Height="40"
                         Command="{Binding GetInfoCommand}"
                           Grid.Row="0" HorizontalAlignment="Left"/>

要素swPictureには、Picturesコレクションからのアイテムソースが含まれています。当分の間のテストとして、私はちょうど1枚の写真を持っています。

私はswPicture要素にあるピクチャの単一の最初のピクチャであるコマンドにパラメータとして渡すことはできますか?

当面は、以下のコマンドハンドラで、パラメータなしで単一のコマンドをトリガすることができます。

GetInfoCommand = new RelayCommand(
            action=>
                {
                    GetMetaData();
                },
                g=>true); //Execute method

このアイデアは、このパラメータを受け入れるGetMetaDataに渡すために、コレクションからの最初のピクチャをパラメータとしてコマンドに渡す必要があることです

XAMLコードとコマンドを更新するにはどうすればよいですか?

0

2 答え

ビューモデルにはピクチャコレクションがあり、GetInfoCommand - GetMetaDataメソッドはコレクションへのアクセス権を持ち、そこから最初の要素にアクセスできますので、シナリオではパラメータはまったく必要ありません。

あなたの質問がパラメータを渡す方法であれば、ボタンのCommandParameterプロパティの値を何らかの値に設定するか、ボタンを押したときにそれをバインドすれば、ExecuteメソッドとCanExecuteメソッドはその値を引数。

0
追加された

CommandParameterこれを行う


    <button Content="Info" Width="40" Height="40"
                         Command="{Binding GetInfoCommand}" CommandParameter="{Binding Pictures[0]}"
                           Grid.Row="0" HorizontalAlignment="Left"/>
0
追加された