Это то, чем я закончил в своем маленьком тестовом проекте: я адаптирую его для использования в правильном коде.
аюсь использовать ComboBox в DataGrid, который позволит пользователю выбрать значение из другой таблицы. Я использую класс ViewModel в качестве DataContext, и он содержит ObservableCollection для терминалов и другой для TerminalTypes.
Привязка к сетке в порядке, все строки заполнены, и все DataGridTextColumns показывают правильные данные, однако мой ComboBox пуст.
Я знаю, что ObservableCollection, к которой я пытаюсь привязаться, заполнен, и если я перемещаю ComboBox за пределы DataGrid, он работает, как и ожидалось.
<my:DataGrid Name="MenuDetailGrid" AutoGenerateColumns="False" ItemsSource="{Binding Terminals}">
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="Terminal Type ID" Binding="{Binding TERMINAL_TYPE_ID}" IsReadOnly="True" />
<my:DataGridTemplateColumn Header="Terminal Type">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox DisplayMemberPath="TTYPE_NAME" SelectedValuePath="TERMINAL_TYPE"
SelectedValue="{Binding TERMINAL_TYPE_ID}"
ItemsSource="{Binding TerminalTypes}" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
Очевидно, что поведение связывания в ComboBox отличается, когда он является частью DataGrid, но я немного озадачен, почему?
Может кто-нибудь, пожалуйста, помогите мне понять, что я делаю неправильно?