【发布时间】:2011-08-12 23:39:54
【问题描述】:
我根据从后端收到的一些数据将图像动态加载到画布上。我有一个如下所示的数据结构:
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 的图像上,它应该会替换 ID 2 和 3 的图像。
为了让事情更有趣,我也在使用 MVVM。 :)
有什么建议吗?
【问题讨论】:
标签: silverlight silverlight-4.0 mvvm itemscontrol mouseenter