Create an event in the control holding the button.
The container holding the two controls handles the event, reads the data via a property, and passes it to the other control via its properties.
That way, neither control needs to know about the existence of the other and the container decides what happend to the data, as is good OOPs practice.
There is an example here:
Transferring information between two forms, Part 3: Child to Child[
^]. It's concerned with forms in a WinForms application, but the principles - and even the code - is exactly the same.