#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 элемента.