将组合框添加到链接到数据表的数据网格

时间:2013-02-09 15:48:30

标签: mysql vb.net datagrid datatable wpfdatagrid

我的程序是用VB.net编写的WPF应用程序。我也接受面向C#的答案,因为我应该能够理解和/或转换。

我有一个dataTable,我通过My​​SqlDataAdapter填充MySQL数据库中的数据。

我的dataGrid目前有AutoGenerateColumns =“TRUE”。

我通过DataGrid1.ItemsSource = MyDataTable.DefaultView

将我的dataTable数据加载到我的dataGrid中

在我的表中,我有一个标有“callType”的列,我希望它是一个comboBox(DataGridComboBoxColumn)

我尝试过各种各样的东西,可以说是黑暗中缺失的镜头。

有人能够在正确的方向上轻推我,或者向我展示如何在与该dataGrid的数据链接的dataGrid中创建一个comboBox列的代码吗?

1 个答案:

答案 0 :(得分:2)

检查How to: Customize Auto-Generated Columns in the DataGrid Control?。它说:

  

您可以处理AutoGeneratingColumn事件以进行修改,替换或   取消正在生成的列。 AutoGeneratingColumn   事件发生一次,每个公共,非静态属性   ItemsSource属性更改时的绑定数据类型和   AutoGenerateColumns属性为true。

Xaml:

<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"  />

代码:

Private Sub DataGrid_AutoGeneratingColumn(sender As System.Object, e As System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs)

        If e.PropertyName = "callType" Then

            Dim combo As New DataGridComboBoxColumn

            combo.ItemsSource = MyItemsSource
            combo.DisplayMemberPath = "TypeName" 
            combo.SelectedValuePath = "TypeID"

            Dim comboBinding As New Binding("callType")
            combo.SelectedValueBinding = comboBinding

            e.Column = combo

        End If

    End Sub