我的程序是用VB.net编写的WPF应用程序。我也接受面向C#的答案,因为我应该能够理解和/或转换。
我有一个dataTable,我通过MySqlDataAdapter填充MySQL数据库中的数据。
我的dataGrid目前有AutoGenerateColumns =“TRUE”。
我通过DataGrid1.ItemsSource = MyDataTable.DefaultView
在我的表中,我有一个标有“callType”的列,我希望它是一个comboBox(DataGridComboBoxColumn)
我尝试过各种各样的东西,可以说是黑暗中缺失的镜头。
有人能够在正确的方向上轻推我,或者向我展示如何在与该dataGrid的数据链接的dataGrid中创建一个comboBox列的代码吗?
答案 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