Oppure

Loading
01/12/09 8:32
mg
Ciao a tutti.
Sono sempre alle prime esperienze di programmazione con C#.

Obiettivo: vorrei riuscire a realizzare una tabella (uso datagrid del toolkit di WPF) n x m con intestazioni sulle righe e sulle colonne dove l'utente (che poi sono io, programmo solo per automatizzare le operazioni che devo comunemente eseguire nel mio studio) possa selezionare una casella ed immettere l'input. Premuto il tasto invio la tabella deve gestire l'ordine di spostamento del focus, ad esempio alla cella sottostante. Naturalmente poi devo recuperare i dati inseriti e inserire i risultati in un'altra tabella.
Tutto quanto lo realizzavo in vb5 usando una flexgrid e una casella di testo della dimensione di una cella che si spostava lungo le celle e copiava il text all'interno della cella.

Chiedo se qualcuno può darmi dei riferimenti, specificare quali sono oggetti e classi da utilizzare. Chiedo un aiuto perchè non ho trovato molto in linea.

Solo per capire come creare una nuova riga
RowDefinition r1=new RowDefinition;
Datagrid1.Items.Add(r1);

ho impiegato un giorno...

Ringrazio tutti

Marco
aaa
01/12/09 15:54
Il Totem
WPF non è proprio intuitivo e cambia molte delle comuni regole, oltre a sostituire tutti i controlli con dei cloni che non presentano spesso gli stessi membri. Se devi usarlo solo tu, è molto più conveniente creare una comunissima applicazione Windwos Forms e documentarti sulla DataGridView (troverai un migliaio di esempi su google).

Con la DataGridView, poi, non è necessario tutto quell'artifizio di spostare la textbox per immettere dati, poiché l'input viene gestito automaticamente.
aaa
01/12/09 19:46
Gianluca87
Postato originariamente da Il Totem:

WPF non è proprio intuitivo e cambia molte delle comuni regole, oltre a sostituire tutti i controlli con dei cloni che non presentano spesso gli stessi membri. Se devi usarlo solo tu, è molto più conveniente creare una comunissima applicazione Windwos Forms e documentarti sulla DataGridView (troverai un migliaio di esempi su google).

Con la DataGridView, poi, non è necessario tutto quell'artifizio di spostare la textbox per immettere dati, poiché l'input viene gestito automaticamente.

@ Totem :
ma che stai a dì?
sono 2 cose totalmente diverse windows application e wpf è circa lo stesso abisso che c'è tra VB6 e VB.net...non è intuitivo come non lo è vb.net se non lo studi...

@mg :
attento a quale oggetto utilizzi... Grid e DataGrid non sono lo stesso oggetto... DataGrid non presenta RowDefinition per definire le righe...devi costruire un template definendo i tipi di colonne... fammi sapere quale oggetto intendi usare e ti scrivo un esempio...
ad ogni modo se la tua tablella come spero che sia è sul db puoi delegare il fatto di inserire dati/aggiornare/cancellare totalmente a Entity Framework e al DataContext con pochissimi accorgimenti...
aaa
02/12/09 9:19
Il Totem
Postato originariamente da Gianluca87:

Postato originariamente da Il Totem:

WPF non è proprio intuitivo e cambia molte delle comuni regole, oltre a sostituire tutti i controlli con dei cloni che non presentano spesso gli stessi membri. Se devi usarlo solo tu, è molto più conveniente creare una comunissima applicazione Windwos Forms e documentarti sulla DataGridView (troverai un migliaio di esempi su google).

Con la DataGridView, poi, non è necessario tutto quell'artifizio di spostare la textbox per immettere dati, poiché l'input viene gestito automaticamente.

@ Totem :
ma che stai a dì?
sono 2 cose totalmente diverse windows application e wpf è circa lo stesso abisso che c'è tra VB6 e VB.net...non è intuitivo come non lo è vb.net se non lo studi...


Suppongo che tu non abbia neanche letto cos'ho scritto, vero?
Poi ti ricordo che VB6 e VB.NET sono due linguaggi di programmazione, mentre WPF e Windows Forms sono due tecnologie, basate sullo stesso Framework.
Ed infatti, non c'è convenienza ad usare WPF per scrivere una applicazione amatoriale che debba usare solo lui se questo comporta complicarsi la vita con i nuovi oggetti. Meglio puntare al tradizionale, per il quale si possono reperire molti più esempi e tutorials.

Ricorda, contraddire Il Totem non è tanto facile :heehee:
aaa
02/12/09 20:12
Gianluca87
Postato originariamente da Il Totem:

Postato originariamente da Gianluca87:

Postato originariamente da Il Totem:

WPF non è proprio intuitivo e cambia molte delle comuni regole, oltre a sostituire tutti i controlli con dei cloni che non presentano spesso gli stessi membri. Se devi usarlo solo tu, è molto più conveniente creare una comunissima applicazione Windwos Forms e documentarti sulla DataGridView (troverai un migliaio di esempi su google).

Con la DataGridView, poi, non è necessario tutto quell'artifizio di spostare la textbox per immettere dati, poiché l'input viene gestito automaticamente.

@ Totem :
ma che stai a dì?
sono 2 cose totalmente diverse windows application e wpf è circa lo stesso abisso che c'è tra VB6 e VB.net...non è intuitivo come non lo è vb.net se non lo studi...


Suppongo che tu non abbia neanche letto cos'ho scritto, vero?
Poi ti ricordo che VB6 e VB.NET sono due linguaggi di programmazione, mentre WPF e Windows Forms sono due tecnologie, basate sullo stesso Framework.
Ed infatti, non c'è convenienza ad usare WPF per scrivere una applicazione amatoriale che debba usare solo lui se questo comporta complicarsi la vita con i nuovi oggetti. Meglio puntare al tradizionale, per il quale si possono reperire molti più esempi e tutorials.

Ricorda, contraddire Il Totem non è tanto facile :heehee:

mo ci provo :rotfl:
eh no totem... la base degli oggetti è diversa... è sbagliata come definizione...le classi usate da WPF e windows application sono diverse... fano parte sempre dello stesso insieme (Framework 3.5) ma sono oggetti diversi...
la convenienza sta nel fatto di imparare a usare una nuova tecnologia che da maggiori possibilità di sviluppo...seguendo l'onda del discorso dovresti dire che è meglio VB6 rispetto a .net no?
forse l'unica cosa su cui non sono assolutamente daccordo è il "puntare al tradizionale"...senza sperimentazione non ci sarebbe progresso...in qualsiasi contesto...
come la natura di questo discorso...sono un contestatore nato amo il conflitto e la competizione...senza di essi saremmo rimasti organismi monocellulari no?(non vuol dire "con un cellulare solo";) :D
molte volte passo per il polemico rompi scatole di turno questo lo so bene...ma quando dico qualcosa cerco di essere il più preciso possibile...molte volte sbaglio...non sono infallibile...per ora... 8-)
aaa
03/12/09 8:28
mg
Scusate per la risposta tardiva... ho problemi con l'adsl nel cambio di gestore!

Per Gianluca e totem: prima di tutto grazie.

Gianluca, vorrei usare il datagrid del toolkit wpf semplicemente perchè, visto che non so molto, tanto vale studiare la classe più recente.
La scelta di usare WPF e non windows form è legata allo stesso motivo.

Quanto mi scrivi su "Rowdefinition" non lo ho bene capito. L'esempio riportato funziona e aggiunge una riga al Datagrid. Probabilemnte mi manca qualcosa...

Anche se scrivo programmini per il semplice utilizzo interno all'ufficio è anche vero che gli stessi programmini sono usati da più persone nel mio studio.
Indubbiamente non mi serve una conoscenza approfondita di WPF e C#, devo semplicemente riuscire a ricreare un programma tipo. Poi i miei programmi si differenziano sostanzialmente per i calcoli eseguiti ma tutti partono da una base comune: devo inserire dei dati, il programma deve calcolare quanto voglio, devo restituire i risultati nelle textbox, nulla di più.
La parte comune è poi: gestire input con il focus corretto (premo invio e il focus deve passare alla textbox corretta), salvare sempre gli input in un file testo e reinserirli all'avvio del programma. Questi due aspetti in qualche modo li ho risolti.

In ultimo, a volte per comodità voglio usare una "tabella" per inserire i dati e non textbox. Ecco perchè della discussione. Ora sto affrontando questo problema.

Quindi nella tabella devo:
1) inserire dati di una tabella di un database (in questo momento sto analizzando proprio questo aspetto del problema riferendomi al libro Pro WPF in C# 2008)
oppure
2) far inserire all'utente i dati e poi gestirli, infine magari inserire in un'altra tabella i risultati, in questo caso quindi tutto non è legato ad un db.

ciao e grazie

MArco
aaa
03/12/09 16:10
Il Totem
Beh, io ti ho dato il mio consiglio. Seguirlo o no spetta a te: se vuoi continuare con WPF, non potrò esserti d'aiuto, perchè DataGrid non è un controllo standard e non ho avuto occasione di osservarlo ben bene, anche se graficamente promette molto.

Per Gianluca, ond'evitare un eccesso di offtopic, continuiamo su un'altra discussione che aprirò tra qualche minuto.
aaa
26/04/10 16:37
mg
Riprendo il problema dopo un po' di tempo.
Riassumo cosa voglio fare:
Semplicemente avere una "tabella" con intestazioni sulle righe e sulle colonne da utilizzarsi per inserire dati in fase di esecuzione (nessun database da cui recuperare dati, solo permettere all'utente - che poi sono io - di inserire degli input). Gestire il focus premendo il tasto invio.

Con datagrid di wpf non ne esco. Sono riuscito a collegare il datagrid ad una database (anche se non serve), una volta inseriti i valori del database posso modificarli inserendo i miei dati. Se non collego il datagrid al database ricevo un errore quando provo ad inserire un dato in una cella...

Posso usare datagridview tramite windowsformhost all'interno di WPF. Seguendo questa strada dovrebbe essere più semplice...

Se qualcuno mi aiuta...

ringrazio
aaa