ComboBox в CellEditingTemplate
Я пытаюсь использовать ComboBox в DataGrid CellEditingTemplate, привязывая к существующей DataTable. Когда я дважды щелкаю элемент, отображается ComboBox, но в нем нет данных. Я исследовал различные варианты в течение нескольких дней, но, похоже, ничего не работает.
<DataGridTemplateColumn Header=" Venue" CanUserSort="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Venue}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=dtVenues, ElementName=MyWindow}"
DisplayMemberPath="Venue"
SelectedValuePath="Venue"
Text="{Binding Venue}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
DataTable dtVenues объявлен как открытый в коде позади (VB). Может кто-нибудь, пожалуйста, укажите мне правильное направление для решения.
1 ответ
Решение
Я предполагаю, что вы объявили dtVenues
коллекция для вашего ComboBox
es в коде вашего Window
и установить Window.DataContext
Значение свойства для кода позади класса, так или иначе. Если это правда, то я считаю, что вам нужно изменить свой Binding
слегка решить Window.DataContext
:
<ComboBox ItemsSource="{Binding Path=DataContext.dtVenues, ElementName=MyWindow}"... />