2011-07-30 6 views
6

私のWP7プロジェクトのビューモデルにmvvmのライトでバインドされたビューがあります。 ビューには、次の設定でリストボックスが含まれていますSelectedItemがCollectionViewSourceの最初の項目に設定されています

<ListBox x:Name="StationList" 
    ItemsSource="{Binding StationList}" 
    SelectedItem="{Binding SelectedStation, Mode=TwoWay}" 
    > 

StationListでのObservableCollectionです。

ビューが読み込まれると、すべてが素晴らしいように見えます。リストが表示され、項目が選択されていません!

しかし、私はにXAMLを変更する場合:StationListSortedがCollectionViewSourceとしてStationList上の単純なプロパティのソートされた状態で

<ListBox x:Name="StationList" 
      ItemsSource="{Binding Source={StaticResource StationListSorted}}" 
      SelectedItem="{Binding SelectedStation, Mode=TwoWay}" 
      > 

。 今は物事が醜くなります! 同じビューに同じ項目がリストボックスにロードされますが、正しくソートされますが、最初の項目が選択され、selectedItemプロパティが設定されます。

ListViewを、私の最初のアイテムを自動的に選択することなくCollectionViewSourceでソートするにはどうすればよいですか?

答えて

15

リストボックスで、IsSynchronizedWithCurrentItemを設定し、どの値(trueまたはfalse)が望ましい効果をもたらすかを確認してみてください。

+2

Falseに設定すると、このトリックが実行されました。ヒントをありがとう! – Depechie

+1

しかし、なぜですか?なぜこれが答えですか? –

+0

これは正解かどうかわかりませんが、現在のアイテムが選択されていない状態でデフォルトのCollectionViewが作成されたようですが、ソートを適用すると現在のアイテムが選択されています。データバインドされたコントロールに現在のアイテムと同期しないことを伝えることによって、それらはCollectionViewの現在のアイテム値で自動的に更新されません。 – sellmeadog

関連する問題