Private Sub MyDataGrid_CellEnteredEditMode(ByVal sender As Object, ByVal e As EditingCellEventArgs)
' 正しいセルを確認します。
If (e.Cell.Column.Key = "ProductName") Then
Dim box As ComboBox = CType(e.Editor, ComboBox)
box.ItemsSource = DataUtil.Products
' 選択したインデックスをグリッド セルのインデックスに設定します。
box.SelectedIndex = e.Cell.Row.Index
End If
End Sub
Private Sub MyDataGrid_CellExitingEditMode(ByVal sender As Object, ByVal e As ExitEditingCellEventArgs)
' 正しいセルを使用し、編集がキャンセルされていないことを確認します。
If ((e.Cell.Column.Key = "ProductName") _
AndAlso Not e.EditingCanceled) Then
Dim box As ComboBox = CType(e.Editor, ComboBox)
If (Not (box.SelectedItem) Is Nothing) Then
' 新しい値は、コンボ ボックスで選択した項目の値です。
e.NewValue = CType(box.SelectedItem, Product).ProductName
box.ItemsSource = Nothing
box.SelectedItem = Nothing
End If
End If
End Sub