WPF ComboBox в DataGrid динамически привязан к DataTable

Я работаю над проектом 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, и теперь я выбрал его вручную, но обычно это должно загружаться автоматически.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
274
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать DataGridComboBoxColumn и установить для свойства ItemsSource набор строк («Не утверждено», «На удержании» и т. д.)

Спасибо, но как я могу программно установить ItemsSource с помощью VB.net?

Rick Tibbe 22.06.2018 10:55

Я бы не советовал строить ваши представления в коде. Вы должны объявить <DataGridComboBoxColumn> в xaml аналогично тому, как вы это сделали выше, а затем установить свойство ItemsSource для этого столбца

rejy11 27.06.2018 16:19

Другие вопросы по теме