void CreateItem(InputAction action)
    {
        GameObject         go  = Instantiate(template, parent);
        ControlBindingItem cbi = go.GetComponentInChildren <ControlBindingItem>();

        cbi.action         = action;
        cbi.txtAction.text = action.name;
        go.GetComponent <Button>().onClick.AddListener(() => StartRebind(cbi));
        list.Add(cbi);
    }
 public void StartRebind(ControlBindingItem cbi)
 {
     //if( cbi.action.controls.Count == 0 )
     Global.instance.Controls.Disable();
     cbi.button.interactable = false;
     InputActionRebindingExtensions.PerformInteractiveRebinding(cbi.action)
     //.OnCancel( OnCancel )
     .OnComplete((x) => {
         cbi.OnComplete(x);
         cbi.button.interactable = true;
         EventSystem.current.SetSelectedGameObject(cbi.button.gameObject);
         Global.instance.Controls.Enable();
     })
     .OnMatchWaitForAnother(0.2f)
     .Start();
 }