Windows phone 7 选择EdItem set to first item with CollectionViewSource
在我的WP7项目中,我有一个通过mvvm light绑定到viewmodel的视图数据。 该视图包含具有以下设置的列表框:Windows phone 7 选择EdItem set to first item with CollectionViewSource,windows-phone-7,listbox,collectionviewsource,Windows Phone 7,Listbox,Collectionviewsource,在我的WP7项目中,我有一个通过mvvm light绑定到viewmodel的视图数据。 该视图包含具有以下设置的列表框: <ListBox x:Name="StationList" ItemsSource="{Binding StationList}" SelectedItem="{Binding SelectedStation, Mode=TwoWay}" > 统计表是一个可观察的集合 现在,当视图加载时,一切看起来都很棒!将显示列表,但未选择任何项
<ListBox x:Name="StationList"
ItemsSource="{Binding StationList}"
SelectedItem="{Binding SelectedStation, Mode=TwoWay}"
>
统计表是一个可观察的集合
现在,当视图加载时,一切看起来都很棒!将显示列表,但未选择任何项目
但当我将XAML更改为:
<ListBox x:Name="StationList"
ItemsSource="{Binding Source={StaticResource StationListSorted}}"
SelectedItem="{Binding SelectedStation, Mode=TwoWay}"
>
StationListSorted是StationList上作为CollectionViewSource的简单单属性排序。
现在事情变糟了!!
同一视图在列表框中加载了相同的项目,但现在已正确排序,但选择了第一个项目并设置了selectedItem属性
如果没有CollectionViewSource自动选择我的第一项,如何对具有CollectionViewSource的列表框进行排序?在您的列表框上,尝试设置
IsSynchronizedWithCurrentItem
,并查看哪个值(true或false)产生所需的效果。但是为什么?!为什么这是答案?我不知道这是否是正确的答案,但似乎在创建默认CollectionView时没有选择当前项,但在应用排序后,选择了当前项。通过告诉数据绑定控件no不与当前项同步,它们不会自动更新为CollectionView的当前项值。这是一个名称不正确的属性。这实际上意味着是否允许collectionview设置所选项目/索引等。否则,选择将仅由控件或绑定源更改。