Domanda

Nella mia app voglio ridimensionare l'immagine del pollice quando faccio clic su di essa, tutte le immagini sono in ItemTemplate dove la sua proprietà Source è vincolata a url all'immagine.

Provo qualcosa di simile (questo è nel mio file DataTemplate)

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

Ma nel gestore dei comandi non so come arrivare a questa immagine. La proprietà OriginalSource su ExecutedRoutedEventArgs è impostata su HyperLink e Source è impostata sul mio controllo.

Forse è possibile impostare CommangParameter sulla mia immagine nidificata, ma non so come farlo. Hai idea di come risolverlo?

È stato utile?

Soluzione

Stai vincolando il parametro del comando al contesto dei dati, quindi avrai accesso al percorso dell'immagine nel parametro del comando, se esegui il cast del parametro correttamente.

Per passare direttamente l'immagine come parametro del comando, dare il nome all'immagine:

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

Associa CommandParameter a questa immagine:

CommandParameter="{Binding ElementName=myImg}"

Non è chiaro dove si sta gestendo questo comando. Se lo stai gestendo nel codice dietro per questo XAML, potresti nominare l'elemento Image e fare riferimento ad esso per nome nel codice dietro il file. Tuttavia, di solito è buona prassi passare ciò che è necessario al comando come parametro. A volte il comando viene gestito lontano da dove viene attivato il comando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top