2

ObservableCollection にバインドされた ListView データがあります。CanReorderItems プロパティを true に設定しました。

ただし、リストビューで項目をドラッグすると、元の位置に留まります。

リスト ビューで並べ替えを有効にする簡単な方法はありますか?

これが私のコードです:ページのctor:

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>
4

2 に答える 2

3

現在、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;
}
于 2012-05-02T23:26:32.217 に答える