For some reason best known to themselves, the developers at Infragistics didn't think to include a double click event for specific elements like rows or nodes (in the UltraWinGrid and UltraWinTree classes, respectively).
The hack I've resorted to to fix this looks like this:
/// <summary>Determines whether the mouse is over a node.</summary>
/// <returns><c>true</c> if the mouse if over a node; otherwise, <c>false</c>.</returns>
private bool IsMouseOverNode()
{
bool result = false;
try
{
Infragistics.Win.UIElement uiElem =
tree.UIElement.ElementFromPoint(tree.PointToClient(UltraTree.MousePosition));
Infragistics.Win.UIElement nodeUIElem =
uiElem.GetAncestor(typeof (Infragistics.Win.UltraWinTree.TreeNodeUIElement));
result = (nodeUIElem != null);
}
catch
{}
return result;
}
where tree is my Tree control instance. For a Grid, replace the guts with the following:
Infragistics.Win.UIElement uiElem =
UltraGrid.DisplayLayout.UIElement.ElementFromPoint(ultraGrid.PointToClient(CompositeGrid.MousePosition));
Infragistics.Win.UIElement rowUIElem =
uiElem.GetAncestor(typeof (Infragistics.Win.UltraWinGrid.RowUIElement));
result = (rowUIElem != null);