codice:
//dichiaro un delegato che accetta come parametro un int;
public delegate void SelectChangeEventHandler(int selection);

class componente1 
{
      
      public static SelectChangeEventHandler SelectChangeDelegate = null;
      
      public static event SelectChangeEventHandler SelectChangeEvent
                {
                    add
                    {
                        SelectChangeDelegate += value;
                    }
                    remove
                    {
                        SelectChangeDelegate -= value;
                    }
                }

     private void OnChangeSel(int numSel)
     {
           // altra implementazione

          if (SelectChangeDelegate != null)
                    {
                        SelectChangeDelegate(numSel);
                    }
     }
}

class componente2
{
     public coimponente2()
     {
         componente1.SelectChangeEvent += new SelectChangeEventHandler(SelChange);
     }

     public void SelChange(int numSel)
     {
            //cambio la selezione
     }
}
un qualcosa del genere