我正在为MS Surface单元开发,并使用ScatterView
来显示一些数据。下面的场景也可能符合正常的ListBox
(以及ListBoxItems
)。
当我对ScatterView
进行数据绑定时,WPF会自动用DataTemplate
包装ScatterViewItems
的内容。我想为(生成的)ScatterManipulationCompleted
的{{1}}事件附加一些事件处理程序,但无法弄清楚如何执行此操作。
非常感谢任何帮助。
答案 0 :(得分:2)
您可以在容器类型上设置Style
并指定EventSetter
,如下所示:
<surface:ScatterView>
<surface:ScatterView.ItemContainerStyle>
<Style TargetType="{x:Type surface:ScatterViewItem}">
<EventSetter Event="ScatterManipulationCompleted" Handler="myHandler"/>
</Style>
</surface:ScatterView.ItemContainerStyle>
</surface:ScatterView>
答案 1 :(得分:2)
您应该利用路由事件。您可以在ScatterView级别监听此事件。
<surface:ScatterView surface:ScatterViewItem.ScatterManipulationCompleted="OnManipulationCompleted"/>
答案 2 :(得分:0)
正如经常发生的那样,我现在找到了答案。在过去的20个小时左右我一直在看这个,只是在发布问题后5分钟找到它: - (
任何方式:我找到的解决方案,现在帮助我的是使用ScatterView的Loaded事件。在处理程序中,我有以下循环:
for (int i = 0; i < MiniBrowserContent.Items.Count; i++)
{
ScatterViewItem svItem = (ScatterViewItem)(MiniBrowserContent.ItemContainerGenerator.ContainerFromIndex(i));
svItem.ScatterManipulationCompleted += new ScatterManipulationCompletedEventHandler(svItem_ScatterManipulationCompleted);
}
阅读http://www.beacosta.com/blog/?p=7
之后,这一切都来找我希望这可以帮助其他人。
再见 巴特