Windows phone 7 在CollectionViewSource.Filter上选择列表框中的第一项
我的列表框与CollectionView源绑定。当我更改过滤器时,它会自动选择列表框中的第一项Windows phone 7 在CollectionViewSource.Filter上选择列表框中的第一项,windows-phone-7,Windows Phone 7,我的列表框与CollectionView源绑定。当我更改过滤器时,它会自动选择列表框中的第一项 App.ViewModel.TasksViewSource.Filter += new System.Windows.Data.FilterEventHandler(Tasks_Filter); void Tasks_Filter(object sender, System.Windows.Data.FilterEventArgs e) { if (e.Item == null)
App.ViewModel.TasksViewSource.Filter += new System.Windows.Data.FilterEventHandler(Tasks_Filter);
void Tasks_Filter(object sender, System.Windows.Data.FilterEventArgs e)
{
if (e.Item == null)
return;
Task task = e.Item as Task;
e.Accepted = task.Id.Equals(TaskId);
}
private void MainListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (TasksListBox.SelectedIndex == -1)
return;
Task selectedTask = App.ViewModel.AllTasks[TasksListBox.SelectedIndex];
TasksListBox.SelectedIndex = -1;
NavigationService.Navigate(new Uri("/Views/TaskDetailsPage.xaml?taskId=" + selectedTask.Id, UriKind.Relative));
}
请帮帮我。你到底想要什么 如果不希望在更改筛选器时选择第一项,则必须首先创建一个私有任务对象(和/或实现INotifyPropertyChanged的SelectedTask属性) 在列表框的SelectionChanged事件中,使用当前选定的任务设置SelectedTask
然后,在应用过滤器后,将SelectedItem属性绑定到SelectedTask。将列表框设置为SynchronizedWithCurrentItem=“False”