2010-04-27 4 views
0

У меня есть элемент управления на странице, содержащей список. У меня также есть другой элемент управления, который представляет собой подробный вид.WPF привязка между элементами управления

Оба элемента управления имеют свой собственный ViewModel, к которому привязаны их дочерние элементы.

Перспективы изображений. В нем есть список папок, и когда вы выбираете папку, элемент управления деталью отображает содержимое папки.

Как связать элемент управления деталями с выбранным элементом в элементе управления списком?

ответ

0

Если у меня все получилось правильно, у вас есть ситуация с мастер-деталями. Можете ли вы добавить список деталей ViewModel как свойство master ViewModel? Таким образом вам не нужно ничего особенного. Он должен работать автоматически. Что-то вроде этого:

public class MyMasterViewModel 
{ 
    public List<MyDetailViewModel> Details 
    { get; set; } 
} 

Set коллекция MyMasterViewModel в DataContext на обоих видах и настраивают связывания соответствующим образом. Когда вы перемещаетесь по главному списку, список подробностей будет автоматически обновляться.
Вы, вероятно, нужно установить IsSynchronizedWithCurrentItem свойство:

<ListBox ItemsSource="{Binding}" 
     IsSynchronizedWithCurrentItem="True" 
     DisplayMemberPath="Something"/> 
+0

Моя проблема заключается в том, что главный вид находится в другом элементе управления для подробного представления. Я попытаюсь использовать один и тот же ViewModel для обоих элементов управления. –

+0

Если они находятся в одном окне, вы можете установить «DataContext» в окне. Если у вас есть другой контекст данных для окна, посмотрите, можете ли вы объединить эти два представления в некоторый контейнер (сетку или некоторые панели макета), а затем установить «DataContext» в этот контейнер. – zendar

Смежные вопросы