LINQ: New Object e registrazione ad eventi
scottino
scottino non è online. Ultima attività: 26/08/2009 19.27.53scottino
il 2 luglio 2009 alle 11:38
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
RE: LINQ: New Object e registrazione ad eventi
Cradle
Cradle non è online. Ultima attività: 09/02/2010 17.38.37Cradle
il 2 luglio 2009 alle 13:22
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.
COMMUNITY
ULTIMI MESSAGGI
UTENTI ONLINE
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2010.2.8