Я загружаю изображения динамически на холст на основе некоторых данных, которые я получаю от серверной части. У меня есть структура данных, которая выглядит следующим образом:
ID: 1 GROUP: A X: 10 Y: 10
ID: 2 GROUP: A X: 20 Y: 20
ID: 3 GROUP: A X: 30 Y: 30
ID: 4 GROUP: B X: 40 Y: 40
ID: 5 GROUP: B X: 50 Y: 50
ID: 6 GROUP: C X: 60 Y: 60
Я загружаю эти данные в ItemsControl
, который выглядит примерно так:
<ItemsControl ItemsSource="{Binding MyDataSet}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Canvas>
<Image Height="10" Width="10"
Source="/someImage.png"
Canvas.Left="{Binding X}"
Canvas.Top="{Binding Y}"
MouseEnter="Image_MouseEnter"
MouseLeave="Image_MouseLeave" />
</Canvas>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Изображения отображаются на Canvas
просто отлично. Когда пользователь наводит указатель мыши на изображение, обработчик событий Image_MouseEnter
заменяет изображение другим «выделенным» изображением. Метод Image_MouseLeave
меняет изображения обратно. Это тоже работает нормально.
То, что я хочу сделать , также использует «выделенное» изображение для каждого другого изображения, которое имеет тот же GROUP
, что и изображение над ним. Поэтому, если я наведу указатель мыши на изображение для ID: 1 GROUP: A
, оно должно поменять местами изображения для идентификаторов 2 и 3.
Просто чтобы сделать вещи более интересными, я также использую MVVM. :)
Есть предложения?