Привязка ComboBox ItemsSource в DataTemplate - PullRequest
3 голосов
/ 29 января 2012

Я пытаюсь связать комбинированный список со списком элементов (ObservableCollection) на моей модели представления. Если я использую что-то подобное на мой взгляд:

<ComboBox ItemsSource="{Binding Path=Teams}" DisplayMemberPath="TeamName" />

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

<DataTemplate x:Key="test">
  <TextBlock Text="Team:" />
  <ComboBox ItemsSource="{Binding Path=Teams}" DisplayMemberPath="TeamName" />
</DataTemplate>
<ListBox ItemsSource="GamesCV" ItemTemplate="{StaticResource test}" />

Я подумал, что, возможно, мне нужно добавить относительный источник, поэтому я попробовал это, но не повезло. Я также попытался дать своему UserControl имя и использовать его в качестве ElementName в своем связывании со списком. Я не могу себе представить, что это так сложно, как я это делаю. Я, наверное, упускаю что-то очевидное. Кто-нибудь может помочь? Я могу дать больше подробностей, если это необходимо, сейчас мне просто нужно время.

Спасибо, Деннис

Ответы [ 2 ]

4 голосов
/ 29 января 2012

Может быть, вы забыли DataContext в пути?Если вы используете RelativeSource, вы нацелены на элемент фреймворка, а не на DataContext, поэтому это должно сделать это:

{Binding DataContext.Teams, RelativeSource={RelativeSource AncestorType=ListBox}}

Также, если у вас есть проблемы с привязками проверка на ошибки , они скажут вам все , что вам нужно знать.

0 голосов
/ 12 мая 2016

Для UWP я получил вот так

   <GridView x:Name="abc" ItemsSource="{Binding Path=DataContext.Companies,RelativeSource={RelativeSource Mode=TemplatedParent}}"></GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...