Привязка ItemsControl к модели данных.ObservableCollection

#silverlight #data-binding #itemscontrol

#silverlight #привязка к данным #itemscontrol

Вопрос:

У меня есть представление (MainPage.xaml), которое привязано к ViewModel. В ViewModel у меня есть свойство DataModel (обратите внимание, что и viewmodel, и datamodel реализуют INotifyPropertyChanged, или как называется этот интерфейс).

На мой взгляд, я определил ItemsControl, чей ItemsSource привязан к указанному свойству. Это свойство (DataModel) имеет ObservableCollection (которое, я знаю, заполнено действительными данными).

Фрагмент xaml выглядит следующим образом:

 <ItemsControl ItemsSource="{Binding Path=CurrentDataModel.Items}">
  

Обратите внимание, что я не показываю остальную часть xaml. Все, что он показывает, это ItemsTemplate, который является просто текстовым блоком.

Проблема в том, что для этого ItemsControl ничего не выводится, хотя я могу ясно видеть (во время отладки), что коллекция содержит хорошие данные.

Является ли эта привязка «Path = …» невозможной для ItemsSource ItemsControl в ItemsSource?

Ответ №1:

Синтаксис пути выглядит правильным. Наиболее вероятной причиной сбоя является то, что для DataContext не установлено ваше ViewModel значение или что указанный вами путь к свойству неверен.

В вашем вопросе вы указываете, что у ViewModel есть свойство с именем DataModel, но во фрагменте xaml у вас есть CurrentDataModel .

Комментарии:

1. Извините, это была опечатка. Я не упомянул, что отображаются другие свойства, привязанные к модели данных. Например, я показываю количество элементов в коллекции ItemsSource. Это отображается (есть 3 элемента). Но опять же, сам itemscontrol не отображает эти 3 элемента.