src/Misc/EFTools/DesignXmlCore/Base/Shell/TreeGridDesignerBranch.cs
/// <summary>
///     Each node in the tree can have an associated tracking object used to indentify it.
///     The branch can override this method to return the row index corresponding to the given
///     object.
/// </summary>
/// <param name="locateData">
///     If the object is a direct child of this branch, set locateData.Options = TrackingObjectAction.ThisLevel.
///     If the object is deeper in the tree, the branch should set it to TrackingObjectAction.NextLevel,
///     locateData.Row should be set to the row where the search should continue.
/// </param>
/// <param name="tracked">Object to track</param>
Each node in the tree can have an associated tracking object used to indentify it.
The branch can override this method to return the row index corresponding to the given
object.
Each node in the tree can have an associated tracking object used to indentify it . The branch can override this method to return the row index corresponding to the given object .
protected virtual LocateObjectData LocateTrackingObject(object tracked, LocateObjectData locateData)
        {
            locateData.Row = -1;
            locateData.Row = GetIndexForElement(tracked);
            locateData.Options = locateData.Row >= 0 ? (int)TrackingObjectAction.ThisLevel : (int)TrackingObjectAction.NotTracked;
            return locateData;
        }
protected virtual LocateObjectData LocateTrackingObject ( object tracked , LocateObjectData locateData ) { locateData . Row = - 1 ; locateData . Row = GetIndexForElement ( tracked ) ; locateData . Options = locateData . Row >= 0 ? ( int ) TrackingObjectAction . ThisLevel : ( int ) TrackingObjectAction . NotTracked ; return locateData ; }
Each node in the tree can have an associated tracking object used to indentify it.
Each node in the tree can have an associated tracking object used to indentify it .
// base implementation handles searching in this branch, but searching  // deeper in the tree requires knowledge not available  // in the base class.
tracked
object
Object to track
Object to track
locateData
LocateObjectData
If the object is a direct child of this branch, set locateData.Options = TrackingObjectAction.ThisLevel.
If the object is deeper in the tree, the branch should set it to TrackingObjectAction.NextLevel,
locateData.Row should be set to the row where the search should continue.
If the object is a direct child of this branch set locateData . Options = TrackingObjectAction . ThisLevel . If the object is deeper in the tree the branch should set it to TrackingObjectAction . NextLevel locateData . Row should be set to the row where the search should continue .