La mejor práctica cuando necesita dos controles de usuario (winforms) para comunicarse

Problema extendido

Me gustaría agregar un nuevo problema además del problema original especificado a continuación. Uno de los controles de usuario en la aplicación contiene una lista de objetos a los que necesito acceder desde otro control de usuario. ¿Cómo se puede hacer esto? (No creo que la división en controles esté muy bien realizada, pero prefiero no cambiarla ...)

¿Debería hacerlo por eventos como con el problema original, o debo obtener el Formulario principal y usarlo para encontrar la instancia del control y exponerlo como una propiedad?

Problema original

Tengo dos controles de usuario en una forma que quiero poder comunicarme entre ellos. Usercontrol A debería poder iniciar una operación en B.

¿Cuál es la forma preferida de resolver esto? ¿Debería el formulario esperar un evento de A y luego iniciar la operación en B? ¿Algún patrón de diseño para esto? ¿O es una solución aún más fácil?

¡Gracias por adelantado! :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta