2012-05-02 34 views
2

ObservableCollectionにバインドされたListViewデータがあります。 CanReorderItemsプロパティをtrueに設定しました。ListViewでアイテムを並べ替える簡単な方法はありますか?

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

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

は私のコードです:ページの 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> 

答えて

3

bugは今、ListViewコントロールとGridViewの中にあります(質問は、Windows 8.0の前に頼まれた注意してくださいコレクションビューソースを使用する必要があります。

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; 
} 
+0

フィリップ、ご返信ありがとうございます。しかし、アイテムの順序は変わりません。私がやっていなければならないことは他にありますか? (イベントに耳を傾ける?) – user380719

+0

あなたの商品には何がありますか?ボタンがあると機能しないかもしれませんが、ListItemButtonのようなカスタムボタンの実装に置き換えることができます - http://winrtxamltoolkit.codeplex.com/SourceControl/changeset/view/13059#246007 –

+0

カスタムはありませんアイテム、上記のサンプルを参照してください。 – user380719

2

AllowDropを有効にし、ItemsSourceをObservableCollectionまたはICollectionViewSourceにする必要があります。

関連する問題