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

标签 wpf listview data-binding collectionviewsource listcollectionview

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

View 模型:

    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);
    }
}

View (大量精简):

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

注意带有尾部斜杠的 Binding Pacientes/,尝试绑定(bind)到 Pacientes.CurrentItem

我的目的是提供一个主视图/详细 View ,其中一个 ListView 显示所有项目,一个侧面板显示当前/选定项目的信息。

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

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

最佳答案

设置IsSynchronizedWithCurrentItem属性:

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

关于wpf - 如何同步ListCollectionView.CurrentItem和ListView.SelectedItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33128370/

相关文章:

wpf - Wpf ScrollViewer滚动量

c# - 在两个 ListView 中只选择一个项目

java - 数据绑定(bind)和验证 TableViewer?

asp.net - 有一个无效的 SelectedValue,因为它不存在于项目列表中。你如何调试?

wpf - 如何将大型 XAML 文件分解为子 XAML 文件并保持父对象和子对象之间的通信?

c# - Resharper 对 XAML 不满意

wpf - 在 RibbonGroup 内水平拉伸(stretch) WPF 网格

java - 设置 ListView 背景时应用程序崩溃

android - 自定义 ListView 项中的动态度量文本,OnGlobalLayoutListener 仅调用一次

c# - WPF MVVM - 刷新 TreeView