2

我正在为 MS Surface 单元开发并使用 aScatterView来显示一些数据。下面的场景可能也适合正常ListBox(和ListBoxItems)。

当我对 进行数据绑定时ScatterView,WPF 会自动将 的内容DataTemplateScatterViewItems. 我想为ScatterManipulationCompleted(generated) 的事件附加一些事件处理程序ScatterViewItem,但不知道该怎么做。

任何帮助深表感谢。

4

3 回答 3

2

您可以Style在容器类型上设置 a 并指定EventSetter如下:

<surface:ScatterView>
    <surface:ScatterView.ItemContainerStyle>
        <Style TargetType="{x:Type surface:ScatterViewItem}">
            <EventSetter Event="ScatterManipulationCompleted" Handler="myHandler"/>
        </Style>
    </surface:ScatterView.ItemContainerStyle>
</surface:ScatterView>
于 2009-04-05T13:50:27.613 回答
2

您应该利用路由事件。您可以在 ScatterView 级别监听此事件。

        <surface:ScatterView surface:ScatterViewItem.ScatterManipulationCompleted="OnManipulationCompleted"/>
于 2009-04-07T20:20:22.807 回答
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后,我想到了这一切

希望这对其他人有帮助。

再见,巴特

于 2009-04-05T13:55:07.027 回答