如何同步ListCollectionView.CurrentItem和ListView.SelectedItem?
How to synchronize ListCollectionView.CurrentItem and ListView.SelectedItem?
我有一个包含 ListCollectionView
属性 的 ViewModel,以及一个包含 ListView
控件的视图,其 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 项目的信息。
事实是:当我 select ListView 中的一个元素时,我希望设置 Pacientes.CurrentItem
,但显然不是!
所以我的问题是:如何通过 select 在数据绑定列表框上添加一个项目来设置 ListCollectionView.CurrentItem?
设置 IsSynchronizedWithCurrentItem
属性:
<ListView ItemsSource="{Binding Pacientes}" IsSynchronizedWithCurrentItem="True"/>
我有一个包含 ListCollectionView
属性 的 ViewModel,以及一个包含 ListView
控件的视图,其 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 项目的信息。
事实是:当我 select ListView 中的一个元素时,我希望设置 Pacientes.CurrentItem
,但显然不是!
所以我的问题是:如何通过 select 在数据绑定列表框上添加一个项目来设置 ListCollectionView.CurrentItem?
设置 IsSynchronizedWithCurrentItem
属性:
<ListView ItemsSource="{Binding Pacientes}" IsSynchronizedWithCurrentItem="True"/>