0

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

<s:ScatterView x:Name="swPicture" ItemsSource="{Binding Pictures}" ItemTemplate="{StaticResource Scatter_Thumbnail}"/>
    <Button Content="Info" Width="40" Height="40"
                         Command="{Binding GetInfoCommand}"
                           Grid.Row="0" HorizontalAlignment="Left"/>

要素 swPicture には、Pictures コレクションからのアイテム ソースが含まれます。とりあえずのテストとして、1枚の写真しかありません。

swPicture Element にある Pictures からの単一の最初の画像をコマンドにパラメーターとして渡すにはどうすればよいですか?

当分の間、以下に定義されているように、モデル内の次のコマンド ハンドラーを使用して、パラメーターなしで単一のコマンドをトリガーすることができます。

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

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

XAML コードとコマンドを更新して機能させるにはどうすればよいですか?

4

2 に答える 2

0

あなたのシナリオでは、ビュー モデルには Pictures コレクションと GetInfoCommand の両方があるため、パラメーターはまったく必要ありません。GetMetaData メソッドはコレクションにアクセスでき、そこから最初の要素にアクセスできます。

質問がパラメーターを渡す方法である場合-ボタンの CommandParameter プロパティの値を何らかの値に設定するか、必要なものにバインドするだけで、ボタンを押すと、Execute および CanExecute メソッドにその値が渡されます引数。

于 2011-11-24T17:49:09.247 に答える
0

CommandParameter こうする

<s:ScatterView x:Name="swPicture" ItemsSource="{Binding Pictures}" ItemTemplate="{StaticResource Scatter_Thumbnail}"/>
    <Button Content="Info" Width="40" Height="40"
                         Command="{Binding GetInfoCommand}" CommandParameter="{Binding Pictures[0]}"
                           Grid.Row="0" HorizontalAlignment="Left"/>
于 2015-08-13T11:00:16.617 に答える