0

私のアプリでは、サムネイル画像をクリックしたときにサイズを変更したいのですが、すべての画像はItemTemplateにあり、そのSourceプロパティはurltopictureにバインドされています。

私はこのようなことを試みます(これは私のDataTemplateファイルにあります)

<TextBlock>
   <Hyperlink TextDecorations="None"
               Command="helpers:StatusesCommands.ShowPicture"
               CommandParameter="{Binding}">
                    <Image Source="{Binding Path=FirstPictureUrl}" Margin="5"   />
   </Hyperlink>
</TextBlock>

しかし、コマンドハンドラーでは、この画像にアクセスする方法がわかりません。ExecutedRoutedEventArgsのOriginalSourceプロパティはHyperLinkに設定され、Sourceは私のコントロールに設定されています。

CommangParameterをネストされた画像に設定することは可能かもしれませんが、その方法がわかりません。これを解決する方法を知っていますか?

4

1 に答える 1

3

コマンドパラメータをデータコンテキストにバインドしているため、パラメータを正しくキャストすると、コマンドパラメータの画像パスにアクセスできるようになります。

画像をコマンドパラメータとして直接渡すには、最初に画像に名前を付けます。

<Image x:Name="myImg" Source="{Binding Path=FirstPictureUrl}" Margin="5"/>

CommandParameterをこの画像にバインドします。

CommandParameter="{Binding ElementName=myImg}"

このコマンドをどこで処理しているかは明確ではありません。このXAMLのコードビハインドで処理している場合は、Image要素に名前を付け、コードビハインドファイルで名前で参照できます。ただし、通常は、必要なものをパラメーターとしてコマンドに渡すことをお勧めします。コマンドがトリガーされる場所から遠く離れた場所でコマンドが処理される場合があります。

于 2009-06-22T12:03:21.587 に答える