WPF MVVM C#​​:列表框拖放,无需代码

Posted

技术标签:

【中文标题】WPF MVVM C#​​:列表框拖放,无需代码【英文标题】:WPF MVVM C#: listbox drag and drop without code behind 【发布时间】:2019-02-11 03:27:03 【问题描述】:

我正在尝试弄清楚如何在没有任何代码的情况下重新排序列表框。我试着关注这篇文章:WPF C#: Rearrange items in listbox via drag and drop 它确实有效,但我想用 ICommand 或 AttachBehavior 来做。

有什么建议吗? 如何将 Drop 和 PreviewMouseLeftButtonDownEvent 与 AttachBehavior 挂钩?

Listbox 的 ItemsSource 是一个 Observable 集合。

【问题讨论】:

@JohnEphraimTugado 我在哪里重新安排 observable 集合? 【参考方案1】:

查看this CodeProject 文章。此实现依赖于两个附加属性 DragEnabledDropEnabled

<ListBox lib:DragAndDrop.DragEnabled="true"/> // Source
<ListBox lib:DragAndDrop.DropEnabled="true"/> // Target

【讨论】:

这不是我想要的。我想重新排序一个列表框中的项目。这个项目正在将项目从一个列表框拖到另一个列表框。 你还有其他没有找到祖先的例子吗? 如果你也可以使用 ListView 那么这个CodeProject articel 可以帮助你。这就是我在 ListView 中用于拖放排序的方法。您可能正在寻找两者的结合。

以上是关于WPF MVVM C#​​:列表框拖放,无需代码的主要内容,如果未能解决你的问题,请参考以下文章

如何将搜索应用于 MVVM (WPF) 中的列表,而无需每次都调用列表值?

C# 从列表框拖放到树视图

如何在listview - WPF MVVM上拖放后更新codeBehind中的ObservableCollection

如何使用 MVVM 自动隐藏 WPF 中的 DataGrid 列? [复制]

c# 求WPF省市区三级联动代码,是从xml中得到省市区数据后添加到三个下拉列表。

ItemsControl 组合框 selecteditem C# WPF MVVM