Pergunta
No meu aplicativo, eu quero redimensionar a imagem digital quando clico nele, todas as imagens estão no itemTemplate, onde sua propriedade de origem é vinculada ao URL para a imagem.
Eu tento algo assim (este está no meu arquivo datatemplate)
<TextBlock>
<Hyperlink TextDecorations="None"
Command="helpers:StatusesCommands.ShowPicture"
CommandParameter="{Binding}">
<Image Source="{Binding Path=FirstPictureUrl}" Margin="5" />
</Hyperlink>
</TextBlock>
Mas no manipulador de comando, não sei como chegar a essa imagem. A proposição OriginalSource no ExecutredRoutEDeventArgs está definida como HyperLink e a fonte está definida como meu controle.
Talvez seja possível definir o ComangParameter à minha imagem aninhada, mas não sei como fazê -lo. Você tem alguma ideia de como resolver isso?
Solução
Você está vinculando o parâmetro de comando ao contexto de dados, portanto, terá acesso ao caminho da imagem no parâmetro de comando, se você lançar o parâmetro corretamente.
Para passar a imagem como o parâmetro de comando diretamente, primeiro o nome da imagem:
<Image x:Name="myImg" Source="{Binding Path=FirstPictureUrl}" Margin="5"/>
Ligue o comandoparameter a esta imagem:
CommandParameter="{Binding ElementName=myImg}"
Não está claro onde você está lidando com esse comando. Se você estiver lidando com o código por trás deste XAML, poderá nomear o elemento da imagem e consultar o nome no código atrás do arquivo. No entanto, geralmente é uma prática melhor passar o que você precisa para o comando como um parâmetro. Às vezes, o comando é tratado longe de onde o comando é acionado.