View Full Version : [WPF] DataGrid: aggiungere una nuova riga, qual è la soluzione migliore?
robertino_salemi
26-02-2015, 14:08
Salve a tutti,
nella mia applicazione WPF, devo permettere all'utente, di poter inserire una nuova riga, così nella definizione del DataGrid ho aggiunto:
CanUserAddRows="True"
Nella struttura attuale della Datagrid sono presenti 6 colonne dove:
1) le prime due non sono modificabili (quindi non prevedono un <DataGridTemplateColumn.CellEditingTemplate> nello XAML
2) le altre sono modificabili tramite Combobox (prevendono un <DataGridTemplateColumn.CellEditingTemplate> nello XAML con relativa ComboBox)
Nel caso in cui l'utente deve aggiungere una nuova riga, dovrebbe selezionare i valori delle varie colonne tramite Combobox popolate da DB.
Secondo voi, quale potrebbe essere la soluzione migliore per tale scopo?
Grazie.
[Kendall]
26-02-2015, 16:19
Salve a tutti,
nella mia applicazione WPF, devo permettere all'utente, di poter inserire una nuova riga, così nella definizione del DataGrid ho aggiunto:
CanUserAddRows="True"
Nella struttura attuale della Datagrid sono presenti 6 colonne dove:
1) le prime due non sono modificabili (quindi non prevedono un <DataGridTemplateColumn.CellEditingTemplate> nello XAML
2) le altre sono modificabili tramite Combobox (prevendono un <DataGridTemplateColumn.CellEditingTemplate> nello XAML con relativa ComboBox)
Nel caso in cui l'utente deve aggiungere una nuova riga, dovrebbe selezionare i valori delle varie colonne tramite Combobox popolate da DB.
Secondo voi, quale potrebbe essere la soluzione migliore per tale scopo?
Grazie.
Ciao Robertino, non ho ben capito cosa vuoi fare.
Della serie, tu hai la tua bella datagrid. Avrai da qualche un pulsantone con "Aggiungi Riga" o quel che è.
Una volta che il cliente clicca quel pulsante cosa vuoi che succeda? Che ti si apra un dialog per l'inserimento dei valori di quella griglia, e una volta premuto OK ti venga inserita la nuova riga?
robertino_salemi
26-02-2015, 16:34
Sicuramente sai che con
CanUserAddRows="True"
viene visualizzata una riga vuota alla fine del DataGrid, ma visto che (come dicevo) per alcune colonne è prevista la ComboBox in fase di editing per altre no.
Se potessi realizzare qualcosa come quella da te suggerita sarebbe perfetto! :D
[Kendall]
26-02-2015, 20:44
Sicuramente sai che con
CanUserAddRows="True"
viene visualizzata una riga vuota alla fine del DataGrid, ma visto che (come dicevo) per alcune colonne è prevista la ComboBox in fase di editing per altre no.
Se potessi realizzare qualcosa come quella da te suggerita sarebbe perfetto! :D
In realtà non conoscevo la proprietà CanUserAddRows.
Le mie conoscenze di XAML sono al 90% dovute ad alcune applicazioni fatte per Windows Runtime. Da ciò ne deriva che i principi e gli strumenti dello XAML sono i medesimi (da questo i consigli che ti ho dato in altri thread), ma le proprietà delle varie strutture diverse.
Ho programmato anche alcune applicazioni WPF, ma in quei casi non ho mai fatto pesante uso di datagrid.
Comunque per fare quello che ti ho suggerito basta che ti crei una nuova nuova classe Window (con relativo file xaml) e la personalizzi con i campi di immissione che ti interessano. Poi ci metti un paio di pulsanti "Aggiungi" e "Annulla" (o come vuoi chiamarli). Chiaramente l'intera finestra deve avere la sua logica di gestione sotto.
Ecco un link (http://www.wpf-tutorial.com/dialogs/creating-a-custom-input-dialog/) di esempio.
robertino_salemi
27-02-2015, 09:47
Se riuscissi a permettere l'edit in linea, cioè direttamente sulla griglia sarebbe perfetto! :)
Vediamo se trovo questa soluzione, altrimenti procedo per quella da te consigliata.
:D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.