2

私のプログラムは、VB.netで記述されたWPFアプリケーションです。理解および/または変換できるはずなので、C#向けの回答も受け入れます。

MySqlDataAdapterを介してMySQLデータベースからのデータを入力するdataTableがあります。

私のdataGridには現在AutoGenerateColumns="TRUE"があります。

dataTableデータをdataGridにロードしますDataGrid1.ItemsSource = MyDataTable.DefaultView

私のテーブルには、comboBox(DataGridComboBoxColumn)にしたい「callType」というラベルの付いた列があります。

暗闇の中でのショットが欠けていると表現できるさまざまなことを試しました。

誰かが私を正しい方向に動かしたり、そのdataGridのデータにリンクされているdataGridでcomboBox列を作成する方法に関するコードを教えてくれませんか?

4

1 に答える 1

2

方法を確認してください:DataGridコントロールで自動生成された列をカスタマイズしますか?。それは言う:

AutoGeneratingColumnイベントを処理して、生成されている列を変更、置換、またはキャンセルできます。AutoGeneratingColumnイベントは、ItemsSourceプロパティが変更され、AutoGenerateColumnsプロパティがtrueの場合に、バインドされたデータ型のパブリックな非静的プロパティごとに1回発生します。

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