2

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

我有一个数据表,我通过 MySqlDataAdapter 填充了我的 MySQL 数据库中的数据。

我的 dataGrid 目前有 AutoGenerateColumns="TRUE"。

我将我的 dataTable 数据加载到我的 dataGrid 中DataGrid1.ItemsSource = MyDataTable.DefaultView

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

我已经尝试了各种可以被描述为在黑暗中丢失的东西。

是否有人能够将我推向正确的方向或向我展示一些有关如何在与该 dataGrid 的数据链接的 dataGrid 中创建组合框列的代码?

4

1 回答 1

2

检查如何:自定义 DataGrid 控件中的自动生成的列?. 它说 :

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

xml:

<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
于 2013-02-09T16:01:32.783 回答