Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Controll e collezioni
lunedì 10 aprile 2006 - 16.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
lun 10 apr 2006 - 16:59
Ciao a tutti raga!
Spego il mio Prb
Sto implementando un classettina di Bind tra oggetti ed un Dataset
Ho creato 3 controlli
- NumText
- StrText
- Combo
Dove tutti hanno implementata la proprietè PureData che ritorna o setta il valore nell'oggettino.
Ora nella form template volevo creare una collezione di oggetti ( che sono quelli che metto nella form)
A questo punto volevo fare un ciclo sulla collezione dove campo per campo del Dataset valorizzavo il relativo oggetto in maschera.
La questione sta che dichiaranto una collezione generica cosi : Collection<Object> cCampi = new Collection<Object>();
Ogni volta che analizzo un sigolo object lo devo castare all' controllo corrispondente per poter lavorare sulle proprioeta implementate.
La domanda è non vi è modo di creare una colezione "statica", cioè che esponga gia le porprioeta e medoti dei miei controlli ???
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
lun 10 apr 2006 - 17:53
Si, sto utilizzando la 2.0
Dimmi dimmi di questa cosa !!!
Illuminami !!! ^_^
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
lun 10 apr 2006 - 18:31
Grazie MArco, stasera me lo leggo e domani ti comnunico il risultato.
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
lun 10 apr 2006 - 22:03
OK, l'idea è buona ma come faccio ad applicarla al mio caso che ho 3 oggetti diversi da collezzionare ???
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 10:31
Ci ho pensato pure io a fare una classe generica , usare i Generics su di essa, poi far ereditare gli oggetti da Tale Classe.
Ieri sera ero un po fuso dopo una dira gioranta, oggi ci riprovo...
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 11:47
Hey Coach, ho un problema...
Siccome nella mia template non voglio avere una collezione per ogni tipo di oggetto che inserisco nella form.
La strada da intraprendere è quella di far ereditare i tre controlli da una calsse comune. MA :
I tre Controlli ereditano gia da un altra classe...
Ho pensato ad un interfaccia, non credo sia possibile creare un Generics danto come tipo un interfaccia... O mi sbaglio ???
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 12:34
Spetta mi spiego meglio...
I tre Controlli oggetti sono cosi :
public class ctl_Testo : Infragistics.Win.UltraWinEditors.UltraTextEditor
{
}
----------------------------------------------------------
public class ctl_Numeri : Infragistics.Win.UltraWinEditors.UltraNumEditor
{
}
----------------------------------------------------------
public class ctl_Combo : : Infragistics.Win.UltraWinEditors.UltraBomboBox
{
}
Visto che ereditano gia da una classe non posso farli erediate da una altra classe "Base"...
Per Template,intendo un form Base (Da cui erediatre le altre),
li preparo la una collezione (Vuota), dove andrò a buttarci dentro i N° campi delle tre tipologie di controlli.
Il concetto è che non volevo mettere nella template e 3 collezioni (una per ogni tipo di controllo)...
Ma volevo anche eviatre di avere una collezione di Oggetti e di fere la Boxing ed Unboxing dei controlli per poter
andar a intergire con gli stessi..
Spero che di essere stato chiaro, e spero che mi sai a dare una mano... ^_^
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 14:42
>La cosa che puoi fare è creare un'interfaccia che viene implementata da ogni tua classe
--- Fino a qui ci sono
> Poi crei la classe generics utilizzando la where dei generics che in pratica è un contraint
> che ti dice che la classe deve ereditare/implementare una certa classe.
--- Scusa l'ignoranza ma mi sono preso dove dici di usare la Where dei Generisc ecc ecc ecc...
--- Non è mi faresti un piccolo esempio ???
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 15:48
--- Scusa ma sto ad impazzire ho implementato l'interfaccia cosi :
namespace MGControls
{
interface MGInterface
{
bool MGReadOnly { get; set; }
object MGPureData { get; }
}
}
--- Il controllo Base cosi :
namespace MGControls
{
class MgControlBase <T> where T : MGInterface
{
bool MGReadOnly
{
get
{
return false;
}
set
{
}
}
object MGPureData
{
get { return null; }
}
}
}
--- Il controllo da mettere nella form template cosi :
namespace MGControls
{
public partial class MGTextNumBox <T> : MgControlBase<T> where T : Infragistics.Win.UltraWinEditors.UltraNumericEditor, MGInterface
{
public MGTextNumBox()
{
InitializeComponent();
}
public MGTextNumBox(IContainer container)
{
container.Add(this);
InitializeComponent();
}
bool MGInterface.MGReadOnly
{
get
{
return false;
}
set
{
}
}
object MGInterface.MGPureData
{
get { return ""; }
}
}
}
--- Ma adesso quando compilo mi dice :
Error 1 Inconsistent accessibility: base class 'MGControls.MgControlBase<T>' is less accessible than class 'MGControls.MGTextNumBox<T>'
Error 2 Inconsistent accessibility: constraint type 'MGControls.MGInterface' is less accessible than 'MGControls.MGTextNumBox<T>'
--- Dove sbaglio dove ???
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 17:08
Ho provato ad eliminare del tutto l'eraditarietà della Infragistics, cioè fare come mi hai fatto vedere nell'esempio ma la cosa non cambia...
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mar 11 apr 2006 - 18:37
Forse ho risolto da solo, ho dovuto rendere pubblica la classe di base che non lo era...
Domani mattina faccio un giro + approfondito...
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mer 12 apr 2006 - 16:49
Coach, Ho un problemino con la classe
>>public class SubClass<T> : BaseClass<T> where T : ISomeInterface
>>{...}
Tanto per indenderci...
>>public class MGTextNumBox<T> : MgControlBase<T> where T : Infragistics.Win.UltraWinEditors.UltraNumericEditor, MGInterface
>>{...}
Quella che ho compilo cosi...
Ma adesso quando carico la dll nel progetto (dove esiste la template) non mi ricosce + la classe come COntrollo.
Infatti l'icona è qulla della classe e non + quella di un componente...
AndreaKpr
Profilo
| Senior Member
265
messaggi | Data Invio:
mer 12 apr 2006 - 17:44
Nooooooooooooooooooooooooo....
Cade tutto cosi...
Allora devo perforza passare attraverso una collezione di Object e fare la Boxing & unBoxing dei controlli ???
Non c'è altra via ???
HELP HELP HELP HELP HELP HELP HELP !!!!
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !