2010-02-25 3 views
1

У меня возникли проблемы с правильной передачей данных. Связывание с моими моделями в представлении. У меня есть MainWindowViewModel, который содержит список AlbumViewModels. Каждый AlbumViewModel содержит AlbumModel. Поэтому у меня есть несколько альбомов, и мне нужно отображать информацию в ObservableCollection в AlbumModel. У меня есть два ListBoxes. ListBox1 содержит список AlbumViewModels, которые находятся в моем MainWindowViewModel. Мой второй ListBox Я хочу отобразить ObservableCollection из текущего выбранного элемента из AlbumViewModel.AlbumModel. Как я могу это сделать? Я попытался привязать DataContext ListBox2 к элементу ListBox1 вместе с SelectedItem как к пути, но возвращает «AlbumViewModel». Нужно ли связать ItemsSource ListBox с привязкой DataContext, но в этом случае привязать его к [DataContext].AlbumModel.ObservableCollection или что-то еще?Связывание данных с WPF и MVVM/Model-View-ViewModel

Прошу прощения, если это звучит довольно сложно!

ответ

0

Вы можете использовать тот факт, что при привязке к коллекции WPF обертывает коллекцию до CollectionView. И у этого парня есть CurrentItem .. У Bea была хорошая статья: How can I sync selection of two data bound ListBoxes? и Dr.WPF поражает (как обычно): ItemsControl: 'C' is for Collection.

+0

О, это интересно. Благодарю. Это сработало, но теперь я пытаюсь понять, как отображать мою модель. Очевидно, я не хочу, чтобы представление имело доступ к Модели, так как я могу создать DateTemplate для него, не подвергая себя модели? Редактировать: Nevermind. работает. Я просто создал DataTemplate с ключом, а не с DataType :) Большое спасибо! – Harry

+0

Добро пожаловать :). Рад, что смог помочь. ура – Anvaka