NEED HELP: Making Better Menu Navigation System

So far I’ve made Page building functions.

Each Page derive collects items in the page, nested in Boxes (containers) and assigns the indexes to them and based to window type they are assigned.

Is there better way, to select these, based on navigation direction?
Like get the location of the neighbouring items of the same type?

No CommonUI use. Not via Keyboard Focus stuff (broken as ■■■■ and unpractical for my needs).

Already set up Input Functions.

void ACndPlayerPawn_Master::BP_IA_MenuHandle(ECndKeyNames_Items_Controller_IA Input, ECndWidget_HandleActions Handle_Action)
{

	CndPlayer::Input::Manage::Switch_Check(this, Input);

	// Checks if button is pressed.
	bool Check = CndPlayer::Input::Manage::Get_Check(this, Input);

	if (CndMenu)
	{

		CndMenu->BPF_MenuNav_Handle(Handle_Action, Check);

	}

}


void UCndWgt_UI_MenuBase::BPF_MenuNav_Handle(ECndWidget_HandleActions Handle_Action, bool ButtonState)
{

    if (InputEnabled == true)
    {
        if (Page.Contains(CndMenu_Type))
        {

            TargetPage->BPF_PageNav_Handle(Handle_Action, ButtonState);

        }
    }
}