Binding delegates in a user widget.

I got similar problem and I solve it by add a condition (Not OnPlayerPickupItem…IsBound()).

//if PC and if button is NOT bound before
	if (PC && !PC->OnPlayerPickupItem.IsBound())
	{
		// Calls CallPlayerPickupItem() that in turn calls the "BlueprintImplementableEvent" on OnPlayerPickedItem()
		PC->OnPlayerPickupItem.AddDynamic(this, &UInventoryUserWidget::CallPlayerPickupItem);
	}