質問

アプリでサムネイル画像のサイズを変更する場合、すべての画像はItemTemplateにあり、そのSourceプロパティはurl to pictureにバインドされています。

私はこのようなことを試みます(これは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をネストされたImageに設定することは可能ですが、その方法はわかりません。これを解決する方法はありますか?

役に立ちましたか?

解決

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

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

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

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

CommandParameter="{Binding ElementName=myImg}"

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top