我有一个通过mvvm light绑定(bind)到WP7项目中的viewmodel的 View 数据。
该 View 包含具有以下设置的列表框:
<ListBox x:Name="StationList"
ItemsSource="{Binding StationList}"
SelectedItem="{Binding SelectedStation, Mode=TwoWay}"
>
StationList是一个ObservableCollection。
现在,在加载 View 时,一切看起来都很棒!显示列表,未选择任何项目!
但是当我将XAML更改为:
<ListBox x:Name="StationList"
ItemsSource="{Binding Source={StaticResource StationListSorted}}"
SelectedItem="{Binding SelectedStation, Mode=TwoWay}"
>
StationListSorted是StationList上的一个简单属性,它作为CollectionViewSource进行排序。
现在事情变得丑陋了!
相同的 View 在列表框中加载了相同的项目,但现在已正确排序,但是选择了第一个项目并设置了selectedItem属性!
如何在没有自动选择我的第一项的情况下使用CollectionViewSource对ListBox进行排序?
最佳答案
在您的列表框中,尝试设置IsSynchronizedWithCurrentItem
并查看哪个值(true或false)产生所需的效果。