I am trying to use a ComboBox in a DataGrid CellEditingTemplate, binding to an existing DataTable. When I double click the item, the ComboBox displays, but there is no data in it. I've researched different options for a couple of days, but nothing seems to work.
<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>
The DataTable dtVenues is declared as Public in code behind (VB). Can anyone please point me in the right direction for a solution.
I'm guessing that you've declared the
dtVenues
collection for yourComboBox
es in the code behind of yourWindow
and set theWindow.DataContext
property value to the code behind class in one way or another. If that is true, then I believe that you need to change yourBinding
slightly to address theWindow.DataContext
: