(Vol. Infragistics 2008 3, 2,0 CLR)Imiter la traînée UltraGridColumnChooser & drop capacité
UltraGrid
pour Infragistics est fourni avec une commande de sélecteur de colonne de l'utilisateur, qui est simplement une disposition verticale des colonnes avec des cases à cocher qui font alterner état caché d'une colonne . De plus, il vous permet de sélectionner une colonne et de la faire glisser directement sur la grille pour ne pas avoir à la positionner manuellement par la suite. (Ceci est particulièrement pratique quand vous avez déjà beaucoup de colonnes visibles et n'avez aucune idée où le nouveau s'est terminé.)
Je construis mon propre sélecteur de colonne basé sur un UltraTree
. Obtenir que les cases à cocher se comportent de la même manière n'était pas un problème, mais je n'ai pas trouvé un moyen de faire glisser une colonne de l'arbre vers la grille et de l'accepter.
Dans mon arbre, chaque UltraTreeNode
a une Tag
avec les éléments suivants struct
:
Private Structure DraggableGridColumn
Public NodeKey As String
Public NodeName As String
Public ParentKey As String
Public Column As UltraGridColumn
End Structure
J'ai alors un événement comme suit:
Private Sub columnsTree_SelectionDragStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles columnsTree.SelectionDragStart
If columnsTree.SelectedNodes.Count <> 1 Then
Return
End If
If Not TypeOf columnsTree.SelectedNodes(0).Tag Is DraggableGridColumn Then
Return
End If
Dim column As UltraGridColumn = CType(columnsTree.SelectedNodes(0).Tag, DraggableGridColumn).Column
columnsTree.DoDragDrop(column, DragDropEffects.All)
End Sub
Dans l'appel DoDragDrop
, ni column
(de type UltraGridColumn
) ni column.Header
(de type ColumnHeader
) sont acceptés par la grille. Je suppose que j'envoie le mauvais type, et/ou que la grille attend un struct
spécial avec quelques informations supplémentaires. Malheureusement, j'ai également échoué à attraper un événement (à la fois du côté du sélecteur de colonnes et du côté de la grille) où le sélecteur de colonnes normal d'Infragistics le fait correctement; la traînée normale & les événements de dépôt ne semblent jamais se déclencher.
Merci pour votre réponse - malheureusement, un représentant Infragistics a depuis clarifié j'aurais fait à nouveau mettre en œuvre ce comportement (à savoir la réutilisation de la portion de goutte de UltraWinGrid du Drag & Drop Code ISN régulier pas possible). –