Pregunta

En mi aplicación, quiero cambiar el tamaño de la imagen en miniatura cuando hago clic en ella, todas las imágenes están en ItemTemplate, donde su propiedad Source está vinculada a la url de la imagen.

Intento algo como esto (esto está en mi archivo DataTemplate)

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

Pero en el controlador de comandos no sé cómo llegar a esta imagen. La propiedad de OriginalSource en ExecutedRoutedEventArgs está configurada en HyperLink y Source está configurada bajo mi control.

Tal vez sea posible configurar CommangParameter en mi imagen anidada, pero no sé cómo hacerlo. ¿Tienes alguna idea de cómo resolver esto?

¿Fue útil?

Solución

Está vinculando el parámetro de comando al contexto de datos, por lo que tendrá acceso a la ruta de la imagen en el parámetro de comando, si convierte el parámetro correctamente.

Para pasar la imagen como parámetro de comando directamente, nombre la Imagen:

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

Vincula el parámetro de comando a esta imagen:

CommandParameter="{Binding ElementName=myImg}"

No está claro dónde está manejando este comando. Si lo maneja en código subyacente para este XAML, puede nombrar el elemento de imagen y referirse a él por nombre en el código detrás del archivo. Sin embargo, generalmente es una mejor práctica pasar lo que necesita al comando como parámetro. A veces, el comando se maneja lejos de donde se activa el comando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top