I frequently have a design problem in C# where I want to instantiate objects with their data complete, but they also need to reference their owner for ease-of-use. But then the pattern ends up being ugly, like:
UI.Add(new Button(UI, "Confirm"));
Where that first argument is redundant + error-prone.
You can delay the assignment, so the Add method assigns the owner (ex. itemBeingAdded.UI = this) but then the child doesn't have the owner until after its constructor.