Я работаю над проектом WPF с VB.net, и для одной конкретной части мне нужно отобразить (часть) таблицы MySQL, которую можно редактировать (по крайней мере, некоторые поля).
Теперь я получил эту работу, загрузив данные из базы данных MySQL в DataTable, из которой DataGrid извлекает все свои значения. Один из столбцов в этом DataGrid представляет собой поле со списком с 4 параметрами по умолчанию, но я не могу заставить его работать, чтобы выбранное значение в этом поле со списком было связано с таблицей данных (другие поля работают нормально, установив привязку к имени столбец в таблице данных).
Это текущий код XAML для ComboBox.
<DataGridTemplateColumn Header = "Status" CellStyle = "{StaticResource DataGridComboBox}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Margin = "2" SelectedValue = "{Binding XPath=item_status}">
<ComboBoxItem Name = "not_approved">Not Approved</ComboBoxItem>
<ComboBoxItem Name = "on_hold">On Hold</ComboBoxItem>
<ComboBoxItem Name = "approved">Approved</ComboBoxItem>
<ComboBoxItem Name = "ad_hoc">Ad Hoc</ComboBoxItem>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Я попытался привязать значения из сетки данных к полю со списком, установив SelectedValue, но это не работает.
Если вы посмотрите на снимок экрана, вы увидите поле со списком во втором столбце (Статус). Все остальные поля поступают, как сказано, непосредственно из DataTable. В DataTable значение в этом столбце для первой строки - Not Approved, и теперь я выбрал его вручную, но обычно это должно загружаться автоматически.





Вы можете использовать DataGridComboBoxColumn и установить для свойства ItemsSource набор строк («Не утверждено», «На удержании» и т. д.)
Я бы не советовал строить ваши представления в коде. Вы должны объявить <DataGridComboBoxColumn> в xaml аналогично тому, как вы это сделали выше, а затем установить свойство ItemsSource для этого столбца
Спасибо, но как я могу программно установить ItemsSource с помощью VB.net?