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 коллекция для вашего ComboBoxes в коде вашего Window и установить Window.DataContext Значение свойства для кода позади класса, так или иначе. Если это правда, то я считаю, что вам нужно изменить свой Binding слегка решить Window.DataContext:

<ComboBox ItemsSource="{Binding Path=DataContext.dtVenues, ElementName=MyWindow}"... />
Другие вопросы по тегам