DataGridComboBoxColumn显示外键表 - WPF

时间:2016-10-19 19:41:43

标签: sql wpf datagrid wpfdatagrid

我有一个SQL数据库,包含表Jars和JarTypes。我需要在DataGrid中显示数据。我还必须能够编辑行。我认为DataGridComboBoxColumn非常适合这项工作。如何使用JarTypes.Type填充ComboBox并将TypeId放回Jars.TypeId。这些表存储在DataTables JarsDt和TypeDt

Jars(JarsDt)

  • JarId(PK)
  • 金额
  • TypeId(FK)

JarTypes(TypeDt)

  • TypeId(PK)
  • 类型

XAML

    <DataGrid x:Name="JarDataGrid"
                  AutoGenerateColumns="False"
                  IsReadOnly="False"
                  HorizontalAlignment="Stretch"
                  Margin="10,35,2,36.8">
        <DataGrid.Columns>
            <DataGridTextColumn Header="#"
                                IsReadOnly="True"
                                Binding="{Binding JarId}" />
            <DataGridTextColumn Header="Mengde"
                                Binding="{Binding Amount}" />
            <DataGridComboBoxColumn x:Name="combo"
                                    Header="Glass"
                                    SelectedValueBinding="{Binding TypeId}"
                                    DisplayMemberPath="{Binding Type}"/>
            <DataGridTextColumn Header="Mengde levert"
                                IsReadOnly="True"
                                Binding="{Binding AmountDelivered}" />

1 个答案:

答案 0 :(得分:0)

ItemsSource的{​​{1}}属性设置为Jars列表,将DataGrid的{​​{1}}属性设置为JarTypes列表。

您可以使用ItemsSource或代码直接设置ComboBox在XAML中执行此操作。

您需要设置CollectionViewSource的{​​{1}}属性。

此外JarDataGrid.ItemsSource = ListOfJars是字符串属性,因此不使用绑定。

在你的情况下,它将是:

SelectedValuePath