130 messaggi dal 18 gennaio 2008
Qualcuno sà come si può fare?

Grazie
Se intendi una clonazione dell'elemento la tecnica più veloce è affidarti alla semplice serializzazione e deserializzazione dell'oggetto usando il DataContractSerializer. Un po' come viene fatto qua http://www.winfxitalia.com/script/91/Clonare-Facilmente-Istanza-Classe.aspx ma con il BinaryFormatter (funzionamento simile).
Qeusto comporta però dei rischi. Non è detto che riesca a serializzare tutte le proprietà e sicuramente non di recupera le attached property.

Ciao

Il mio blog
Homepage
130 messaggi dal 18 gennaio 2008
Ho già provato questa soluzione ma mi dà questo errore:
System.Runtime.Serialization.InvalidDataContractException : Type 'System.Windows.UIElement' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. Alternatively, you can ensure that the type is public and has a parameterless constructor - all public members of the type will then be serialized, and no attributes will be required.


Ricciolo ha scritto:
Se intendi una clonazione dell'elemento la tecnica più veloce è affidarti alla semplice serializzazione e deserializzazione dell'oggetto usando il DataContractSerializer. Un po' come viene fatto qua http://www.winfxitalia.com/script/91/Clonare-Facilmente-Istanza-Classe.aspx ma con il BinaryFormatter (funzionamento simile).
Qeusto comporta però dei rischi. Non è detto che riesca a serializzare tutte le proprietà e sicuramente non di recupera le attached property.
come mai devi clonare un UIElement?

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
130 messaggi dal 18 gennaio 2008
Perchè ho un oggetto che deriva da ContentControl e devo duplicarlo nel Layout. Se provo a referenziarlo mi dice che è già figlio di un'altro elemento del layout e quindi devo clonarlo.

nostromo ha scritto:
come mai devi clonare un UIElement?
Perchè ho un oggetto che deriva da ContentControl e devo duplicarlo nel Layout. Se provo a referenziarlo mi dice che è già figlio di un'altro elemento del layout e quindi devo clonarlo.


Potresti usare la classe XamlWriter che hanno realizzato in http://silverlightcontrib.org/?1cac9380 , oppure fare a mano
Modificato da novecento il 12 febbraio 2010 15.04 -

Alessio Leoncini (SilverlightItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer @ 5DLabs.it
130 messaggi dal 18 gennaio 2008
Ho già provato ad utilizzarlo ma essendo un oggetto custom non fà parte dell'assembly dello userControl. Quindi quando vadoad utilizzare lo xamlreader per "deserializzare" la stringa creata con lo xamlwriter mi dà un'eccezione sul tag iniziale del xaml.


novecento ha scritto:
Perchè ho un oggetto che deriva da ContentControl e devo duplicarlo nel Layout. Se provo a referenziarlo mi dice che è già figlio di un'altro elemento del layout e quindi devo clonarlo.


Potresti usare la classe XamlWriter che hanno realizzato in http://silverlightcontrib.org/?1cac9380 , oppure fare a mano
Modificato da novecento il 12 febbraio 2010 15.04 -
"TOM_YOOX" <TOM_YOOX> wrote in message
news:357462@...
Ho già provato ad utilizzarlo ma essendo un oggetto custom non fà parte dell'assembly dello userControl. Quindi quando vadoad utilizzare lo xamlreader per "deserializzare" la stringa creata con lo xamlwriter mi dà un'eccezione sul tag iniziale del xaml.

In effetti ha dei problemi, prova questo invece:
http://projectsilverlight.blogspot.com/2009/10/silverlight-3-xamlwriter-basic.html Dove l'abbiamo usato ci ha dato soddisfazioni

Alessio Leoncini (SilverlightItalia.com)
.NET Developer, Interactive Designer, UX Specialist, Trainer @ 5DLabs.it

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.
In primo piano

I più letti di oggi

Media
In evidenza
MISC