DataGrid中的WPF ComboBox动态绑定到DataTable

时间:2018-06-20 11:20:02

标签: c# wpf vb.net combobox

我正在使用VB.net进行WPF项目,对于某个特定的部分,我需要显示MySQL数据库表(的一部分),该表是可编辑的(至少某些字段是可编辑的)。

现在我通过将MySQL数据库中的数据加载到DataTable中来工作,DataGrid从中提取所有值。该DataGrid的其中一列是具有4个默认选项的组合框,但我无法正常工作,因为此组合框中的所选值已链接到数据表(通过将绑定设置为数据表中的“列”)。

这是ComboBox的当前XAML代码。

<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将数据网格中的值绑定到组合框,但这无法正常工作。

Screenshot of the program here

如果查看屏幕截图,则可以在第二列(状态)中看到组合框。如上所述,所有其他字段直接来自DataTable。在“数据表”中,此列第一行的值未批准,现在我手动选择了它,但通常应自动加载。

1 个答案:

答案 0 :(得分:0)

您可以使用DataGridComboBoxColumn并将ItemsSource属性设置为字符串的集合(“未批准”,“保留”等)