如何同步ListCollectionView.CurrentItem和ListView.SelectedItem?

时间:2015-10-14 14:38:24

标签: wpf listview data-binding collectionviewsource listcollectionview

我有一个包含ListCollectionView属性的ViewModel,以及一个包含ListView控件的View,其ItemsSource属性是绑定到ListCollectionView的数据:

视图模型:

    public ListCollectionView Pacientes { get; set; }

    public IRepositório<Paciente> RepositórioPacientes { get; set; }


    // CONSTRUTOR
    public MainViewModel()
    {
        RepositórioPacientes = new PacienteRepositorioFake();

        Pacientes = (ListCollectionView)CollectionViewSource.GetDefaultView(RepositórioPacientes.Items);
    }
}

查看(严重剥离):

    <ListView ItemsSource="{Binding Pacientes}"/>
    <Border DataContext="{Binding Pacientes/}">
        <!-- some controls displaying properties of Paciente entity -->
    </Border>

请注意Binding Pacientes/带有斜杠,尝试绑定到Pacientes.CurrentItem

我的目的是提供一个Master / Detail视图,一个ListView显示所有项目,一个侧面板显示来自Current / Selected Item的信息。

事实是:当我在ListView中选择一个元素时,我希望设置Pacientes.CurrentItem,但显然它不是!

所以我的问题是:如何通过选择数据绑定ListBox上的项来设置ListCollectionView.CurrentItem?

1 个答案:

答案 0 :(得分:5)

设置IsSynchronizedWithCurrentItem属性:

<ListView ItemsSource="{Binding Pacientes}" IsSynchronizedWithCurrentItem="True"/>