4

我正在尝试提供 ListBox 拖放排序功能,但我碰壁了。当我在 xaml 中指定列表框项目时,它可以工作,但是当我绑定到列表时它不起作用,因为这些项目不再是 listboxitem 类型。

我发现这段代码http://blog.dobaginski.com/josh/?p=52允许我获取底层 ListBoxItem 但我无法触发鼠标移动事件。

我已经阅读了其他教程,但无法找到处理 ListBox 的教程。有没有人用 ListBox 做到这一点。

我使用的事件是 SelectedChange、MouseMove 和 LeftMouseButtonUp(我认为这个名字是对的)。我没有使用 LeftMouseButtonDown,因为我无法启动它。

4

3 回答 3

1

据我所知,使用数据绑定时您无法访问列表框项容器。你可以在 Beta 1 中。

您也不能在样式中设置鼠标事件处理程序,您必须使用数据模板,正如您所知。

您可能必须使用父元素的鼠标移动事件,可能是承载列表框的 UserControl 或主布局控件。

状态变化和动画需要在样式中,所以......你仍然无法获得列表框项目,只是数据模板中的元素。

哦,如果现在进行拖放 HitTest 受到保护,那么这将使 Drop 更难。

于 2008-10-09T00:06:06.300 回答
1

从今天开始,您可以下载带有一些附加组件的 Silverlight 最终 2.0 版本,查看Scott 的网络日志

于 2008-10-14T20:40:47.917 回答
1

我一直在尝试在 WPF 中做同样的事情,但只发现了许多错误的实现。

一个人把我带到了 Beatriz Costa 的博客,据我所知,她是那些罕见的天才之一,所以我建议你也读一下……我知道我会的

Beatriz Costa 的博客

于 2008-10-15T11:56:23.043 回答