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
Combobox lato progettazione: displaymember e valuemember non vanno
mercoledì 10 febbraio 2010 - 18.13
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
mer 10 feb 2010 - 18:13
Ciao a tutti
ho creato una windows form che legge i dati da un dataset e me li mostra. Alcuni dati dovrei gestirli con combobox visualizzando una descrizione ma memorizzando (in fase di salvataggio) un codice.
Pertanto ho scelto di trasformare il campo da textbox a combobox e con il drag&drop l'ho posizionato sulla form.
Poi sulle proprietà ho scelto come datasource un dataset creato apposta sulla tabella contenente codici e descrizioni del campo ed infine ho messo il campo descrizione come DisplayMember e il campo codice come ValueMember.
Il risultato all'apertura della form è:
1. valore visualizzato codice
2. se apro la combobox mi appare l'elenco di tutte le descrizioni
3. se ne scelgo mi mostra la descrizione ma rimane tutto bloccato (non posso spostarmi su un altro controllo, non posso chiudere la form a meno di scrivere a mano un numero sulla combobox).
Cosa sbaglio?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mer 10 feb 2010 - 19:01
Ciao,
solitamente quando rimani bloccato su un controllo è qualcosa dovuto al tipo di dato a cui sei bindato che non va bene...ad esempio l'oggetto sottostante (nel tuo caso la riga del DataTable con la colonna che hai bindato) vuole un numerico ma tu gli hai agganciato una stringa...o cose di questo genere.
Verifica cosa hai bindato a livello di maschera proprietà->Databinding->Advanced->[...]
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
gio 11 feb 2010 - 14:49
Ora ho visto. Era segnato solo il binding per Text e non quello per selectedValue.
Ma che tu sappia c'è qualche articolo che spiega come usare il binding per creare form di tipo testa-righe? Col fai-da-te ho fatto un sacco di prove e ho scritto codice che secondo me è superfluo...
In altre parole ho 2 tabelle testa ordine e righe ordine (campo IdOrdine chiave univoca di testa e idOrdine+IdRiga chiave di righe).
Il mio obiettivo sarebbe quello di mettere alcuni campi della testa compilabili nella form e una datagridview delle righe associate in modo da poter navigare, modificare, inserire e cancellare dati.
Penso sia una banalità sapendo usare correttamente i vari oggetti, ma non ho trovato info in merito...hai qualche riferimento?
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 11 feb 2010 - 15:16
Ciao,
ti consiglio di partire da msdn, e magari se riesci affiancare qualche libro che solitamente sono dettagliati.
Ti lascio qualche link che mi sembra valido:
http://msdn.microsoft.com/en-us/library/aa984462
(VS.71).aspx
http://msdn.microsoft.com/en-us/library/c12c1kx4.aspx
http://msdn.microsoft.com/en-us/library/ms973824.aspx
http://windowsclient.net/blogs/faqs/archive/2006/05/30/how-do-i-bind-two-datagrids-in-a-master-detail-relationship.aspx
http://www.akadia.com/services/dotnet_databinding.html
http://www.microsoft.com/downloads/details.aspx?familyid=08E3D5F8-033D-420B-A3B1-3074505C03F3&displaylang=en
questo ha una serie di esempi, tra i quali se non ricordo male,alcuni proprio relativi a master-details
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
gio 11 feb 2010 - 15:32
Grazie me li studio e spero di riuscire a venirne fuori.
Ancora grazie per l'aiuto.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 11 feb 2010 - 15:42
>Grazie me li studio e spero di riuscire a venirne fuori.
>Ancora grazie per l'aiuto.
figurati siamo qui per questo...cmq la cosa è semplice quando capisci il concetto e prendi dimestichezza con le DataSource.
ps: io ti consiglierei di ragionare su oggetti, e non su datatable e dataset, che poi ti complichi la vita, ossia ti puoi fare delle classi con delle proprietà che saranno poi i tuoi oggetti (es: Cliente, Ordine,RigaOrdine etc...) e poi bindi quelli...cmq intanto prendi pratica poi magari ne riparliamo.
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Bazzi
Profilo
| Junior Member
67
messaggi | Data Invio:
gio 24 mar 2011 - 22:56
Ciao,
stavo leggendo questo thread dato che avevo anch'io alcune questioni da risolvere con i combo.
Sapresti dirmi dove posso vedere qualche esempio di binding sugli oggetti anzichè dataset/datatable ?
Mi sembra una cosa molto interessante...
Ciao.
PS:Scusate l'intrusione...
The Bazz
Klaus-zanini
Profilo
| Senior Member
364
messaggi | Data Invio:
ven 25 mar 2011 - 09:23
Ciao,
vedi qui se può aiutarti...
http://www.akadia.com/services/dotnet_databinding.html
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 28 mar 2011 - 15:24
Ciao,
aggiungo anche questo:
http://www.codeproject.com/KB/grid/BindSourceBindingNavCS.aspx
dove l'unica differenza è che non nella finestra della datasource, non scegli il db, ma scegli "Object", così facendo lo step successivo di questo wizard è scegliere la classe che vuoi bindare.
Poi da codice ti basta impostare la DataSource al BindingNavigator che hai nella maschera da codice (tipicamente una tua classe dello strato di Business che ti torna una IEnumerable<T>...) e tutto si comporta come sempre.
Quindi riepilogando, attaccarsi al db direttamente (tramite dataset poi creato in automatico da vs), o ad un webservice o dire al bindingsource che gli arriveranno degli oggetti di quel tipo (classe del tuo progetto) è lo stesso.
Io propendo quasi sempre, anche per i progetti semplici, per quest'ultimo caso, perchè sono abituato a lavorare a layer, ma chiaramente sono scelte personali...
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo
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 !