Atributo IsSynchronizedWithCurrentItem y actualizaciones de elementos actuales

Tengo un modelo de vista para administrar un tipo de diálogo de vista que permite filtrar un listado (si es necesario) y seleccionar un elemento. El código funciona bien tanto si configuro IsSynchronizedWithCurrentItem como verdadero o no. Entiendo que esta propiedad no es verdadera de manera predeterminada en un ListView, por lo que me gustaría entender mejor esta propiedad.

Aquí está la configuración de enlace en el xaml de la vista (que funciona igual de bien sin la configuración de propiedades de sincronización):

    <ListView  
          ItemsSource="{Binding Projects.View}" 
          IsSynchronizedWithCurrentItem="True"
          SelectedItem="{Binding SelectedProject, Mode=TwoWay}"             
                      >

El modelo de vista Proyectos es en realidad un CollectionViewSource que está respaldado por una ObservableCollection privada. Creo que tomé esta idea de un proyecto de muestra de Josh Smith, pero honestamente no lo recuerdo en este momento. Aquí está la parte relevante de la VM que se relaciona con el enlace xaml:

private ObservableCollection<ProjectViewModel> _projectsInternal { get; set; }
public CollectionViewSource Projects { get; set; }

private void _populateProjectListings(IEnumerable<Project> openProjects) {
    var listing = (from p in openProjects 
                   orderby p.Code.ToString()
                   select new ProjectViewModel(p)).ToList();

    foreach (var pvm in listing)
            pvm.PropertyChanged += _onProjectViewModelPropertyChanged;

    _projectsInternal = new ObservableCollection<ProjectViewModel>(listing);

    Projects = new CollectionViewSource {Source = _projectsInternal};
}

/// <summary>Property that is updated via the binding to the view</summary>
public ProjectViewModel SelectedProject { get; set; }

La propiedad Filter de CollectionViewSource tiene un controlador que devuelve varios predicados en los elementos del modelo de vista en la lista que los enlaces recogen correctamente. Aquí está la esencia de ese código (que está en el mismo ProjectSelctionViewModel):

    /// <summary>Trigger filtering of the <see cref="Projects"/> listing.</summary>
    public void Filter(bool applyFilter)
    {
        if (applyFilter)
            Projects.Filter += _onFilter;
        else
            Projects.Filter -= _onFilter;

        OnPropertyChanged<ProjectSelectionViewModel>(vm=>vm.Status);
    }

    private void _onFilter(object sender, FilterEventArgs e)
    {
        var project = e.Item as ProjectViewModel;
        if (project == null) return;

        if (!project.IsMatch_Description(DescriptionText)) e.Accepted = false;
        if (!project.IsMatch_SequenceNumber(SequenceNumberText)) e.Accepted = false;
        if (!project.IsMatch_Prefix(PrefixText)) e.Accepted = false;
        if (!project.IsMatch_Midfix(MidfixText)) e.Accepted = false;
        if (!project.IsAvailable) e.Accepted = false;
    }

La configuración de Mode = TwoWay es redundante, ya que el enlace SelectedItem de ListView tiene dos vías de forma predeterminada, pero no me importa ser explícito (es posible que me sienta diferente al respecto una vez que entienda mejor WPF).

¿Qué pasa con mi código que hace que IsSynchronizedWithCurrentItem = True sea redundante?

Mi intuición es que este es un código decente, pero no me gustan esas piezas que parecen funcionar a través de "magia", lo que significa que agradecería cualquier comentario constructivo.

Aclamaciones,
Berryl

Respuestas a la pregunta(1)

Su respuesta a la pregunta