我有一个 ListView 数据绑定(bind)到 ObservableCollection。我将 CanReorderItems 属性设置为 true。
但是,当我在 ListView 中拖动项目时,它们会保留在原始位置。
是否有任何简单的方法可以在 ListView 中启用重新排序?
这是我的代码: 页面作者:
public BlankPage()
{
this.InitializeComponent();
ObservableCollection<MyClass> c = new ObservableCollection<MyClass>();
c.Add(new MyClass("a"));
c.Add(new MyClass("b"));
c.Add(new MyClass("c"));
DataContext = c;
}
页面的XAML:
<ListView ItemsSource="{Binding}" CanDragItems="true" CanReorderItems="true" AllowDrop="True"></ListView>
最佳答案
有一个bug现在在 ListView 和 GridView 中(注意这个问题是在 Windows 8.0 发布之前提出的),并且您需要使用 CollectionViewSource:
public BlankPage()
{
this.InitializeComponent();
ObservableCollection<MyClass> c = new ObservableCollection<MyClass>();
c.Add(new MyClass("a"));
c.Add(new MyClass("b"));
c.Add(new MyClass("c"));
var viewSource = new CollectionViewSource { Source = c };
DataContext = viewSource.View;
}
关于xaml - 有没有一种简单的方法可以对 ListView 中的项目进行重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420947/