1 messaggio dal 14 ottobre 2007
Ciao.
Mi chiedevo se è possibile registrarsi per un evento di un oggetto all'atto della costruzione dell'oggetto stesso.

In particolare scorro con linq i dati restituiti da un Service per costruire nuovi oggetti di classi che estendono quelle originali.
Per spiegarmi meglio, il servizio mi restituisce solo la parte di anagrafica read only che poi estendo con la parte di data entry.

In tale situazione troverei molto comodo potermi registrare per i cambiamenti di stato degli oggetti della classe estesa senza dover ciclare i dati una seconda volta.

Il mio codice attuale à all'incirca:
   
var myData = from anagrafica in e.Result   
                  select new AnagraficaConDE{...   
   
foreach (var item in myData) {   
       item.PropertyChanged+= new    
          System.ComponentModel.PropertyChangedEventHandler(...   
}   

e mi piacerebbe risparmiarmi l'ultima foreach.

Grazie,
Scottino
Così su due piedi direi che l'unica è creare il delegate prima della query e assegnarlo nel costruttore del tuo oggetto AnagraficaConDE all'interno della query LINQ:
PropertyChangedEventHandler handler = new PropertyChangedEventHandler(..);
var myData = from anagrafica in e.Result  
                  select new AnagraficaConDE(handler){...);

e dentro al costruttore:
public AnagraficaConDE(PropertyChangedEventHandler handler)
{
  this.PropertyChanged += handler;
}

L'ho scritto di getto e non l'ho provato, ma dovrebbe andare.
m.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.