隐式创建事件时向ScatterViewItems添加事件

时间:2009-06-03 12:11:15

标签: c# wpf xaml pixelsense

不确定这里有太多的表面开发人员,但是嘿嘿......

如果我有一个隐含创建ScatterViewItem对象的散点图(见下文),是否可以为每个scatterViewItem取消联系事件?此外,当我在ScatterViewItem中显式包装tyhe图像对象时,该项不再有效。有人可以建议为什么会这样吗?

<s:ScatterView ItemsSource="{StaticResource DummyData}" >
   <s:ScatterView.ItemTemplate>
      <DataTemplate>
         <Image Source="{Binding Path=ImagePath}" />
      </DataTemplate>
   </s:ScatterView.ItemTemplate>
 </s:ScatterView>

1 个答案:

答案 0 :(得分:3)

将图像包装在datatemplate内的scatterviewitem中将无济于事,因为只要您使用ItemsSource,散点图仍将生成并使用另一个scatterviewitem进行包装。防止这种情况的唯一方法是明确地创建并添加svi到代码后面的scatterview上的items集合,但这会放弃数据绑定的优点。

要了解您的原始问题,我假设您想知道何时在任何生成的scatterviewitem上发生ContactDown或ContactUp事件?由于这些是路由事件,您只需在散点图级别订阅。

  <s:ScatterView ItemsSource="{StaticResource DummyData}" 
                 s:ScatterViewItem.ContactDown="OnSVIContactDown">
    <s:ScatterView.ItemTemplate>      
        <DataTemplate>         
           <Image Source="{Binding Path=ImagePath}" />      
        </DataTemplate>   
    </s:ScatterView.ItemTemplate> 
  </s:ScatterView>