2

У меня есть ViewModel, содержащий ListCollectionView свойства и вид, содержащий ListView управления которого ItemsSource свойство данные связаны с ListCollectionView:Как синхронизировать ListCollectionView.CurrentItem и ListView.SelectedItem?

ViewModel:

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/ с завершающей косой чертой, пытаясь привязать к Pacientes.CurrentItem.

Мое намерение состоит в том, чтобы предоставить представление «Мастер/Деталь», при этом ListView отображает все элементы и боковую панель, отображающую информацию из текущего/выбранного элемента.

Дело в том, что, когда я выбираю элемент в ListView, я бы ожидал, что Pacientes.CurrentItem будет установлен, но, видимо, это не так!

Так что мой вопрос: как я могу установить ListCollectionView.CurrentItem, выбрав элемент в связанном с данными ListBox?

+0

привязать выбранный элемент управления (ListView). – Paparazzi

ответ

3

Установите IsSynchronizedWithCurrentItem свойство:

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

Ничего себе, это просто ... Я много читал обо всем этом, и, конечно же, я читал о 'IsSync ...', но я не понял, что это причина, по которой он должен использоваться ... Виноват. Большое спасибо! – heltonbiker