私の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でソートするにはどうすればよいですか?
Falseに設定すると、このトリックが実行されました。ヒントをありがとう! – Depechie
しかし、なぜですか?なぜこれが答えですか? –
これは正解かどうかわかりませんが、現在のアイテムが選択されていない状態でデフォルトのCollectionViewが作成されたようですが、ソートを適用すると現在のアイテムが選択されています。データバインドされたコントロールに現在のアイテムと同期しないことを伝えることによって、それらはCollectionViewの現在のアイテム値で自動的に更新されません。 – sellmeadog