Вопрос

В моем приложении я хочу изменить размер изображения большого пальца, когда я нажимаю на него, все изображения находятся в ItemTemplate, где его свойство Source привязано к URL-адресу изображения.

Я пытаюсь что-то вроде этого (это в моем файле DataTemplate)

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

Но в обработчике команд я не знаю, как добраться до этого изображения. Свойство OriginalSource для ExecutedRoutedEventArgs имеет значение HyperLink, а для Source - мой элемент управления.

Возможно, можно установить CommangParameter для моего вложенного изображения, но я не знаю, как это сделать. У вас есть идеи, как решить эту проблему?

Это было полезно?

Решение

Вы связываете параметр команды с контекстом данных, поэтому у вас будет доступ к пути изображения в параметре команды, если вы правильно приведете параметр.

Чтобы передать изображение в качестве параметра команды напрямую, сначала назовите изображение:

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

Привязать CommandParameter к этому изображению:

CommandParameter="{Binding ElementName=myImg}"

Непонятно, где вы обрабатываете эту команду. Если вы обрабатываете его в коде позади этого XAML, вы можете назвать элемент Image и ссылаться на него по имени в коде файла. Тем не менее, обычно лучше передавать команду в качестве параметра. Иногда команда обрабатывается далеко от места ее запуска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top