Abbiamo una colonna associata a un valore intero SQL che è annullabile. Quando l'utente tenta di "cancellare" la cella nello DataGrid
, viene visualizzato l'errore di convalidaCome si cancella una cella (quindi ottiene il valore NULL) in DataGrid (WPF)?
"... non può essere convertito".
Come posso renderlo vuoto e associare un valore "null" alla colonna sottostante?
Ho cercato su Google questo problema per 2 giorni e ho trovato qualcosa. Ho provato a modificare il mio commento su di te HCL, ma non avrebbe mai salvato.
Conosco lo IValueConverters
. Ne ho scritto uno per gestire le nostre percentuali (quindi l'utente può inserire "50%" e viene convertito in ".5"). Sto cercando di fare qualcosa di molto simile, ma quando il valore ritorna come (ho scritto un dummy IValueConterter
per eseguirne il debug), voglio solo che venga salvato nel database come Null
. Forse ho solo bisogno di impostarlo su DBNullValue
? Sembra solo un sacco di lavoro per qualcosa che penso possa avere una proprietà incorporata. Ho provato ad utilizzare la proprietà TargetNullValue
sulla colonna (DataGridBoundColumn
) e l'impostazione che a DBNull.Value
, ma non ha cambiato il valore (in base alla mia manichino IValueConverter
è ancora venuta in come un normale (stringa) NULL
.
I semplicemente vuole essere in grado di salvare un valore nullo al database per questa colonna (tipo integer).
** ** Ultima aggiunta
Buon punto HCL, non ricordo che il mondo intero non è ADO volte
Sono vincolante per una tabella SQL. La colonna in questione è un int
che consente NULL
s.
Le colonne vengono create utilizzando AutoGeneratingColumn
, quindi in pratica le aggancia semplicemente "automagicamente" (alcuni stili come Giustifica destro vengono applicati in questo metodo, ma non per questa colonna). Prende questo approccio, perché l'app è praticamente una sostituzione "Access". Il nostro CIO ci ha incaricato di rimuovere Access dagli utenti, quindi questa era la soluzione (crea il nostro MS Access). Ad ogni modo, dato che può aprire qualsiasi tabella (e creare tabelle, colonne, ecc.) Semplicemente "Genera automaticamente" le colonne in base alla tabella che è stata aperta. Anche se, dal momento che ci sono determinate colonne che l'app conosce intrinsecamente come Discount_Pct, quando incontra una di quelle colonne, fa alcune "cose speciali" (come assegnare lo IValueConverter
che ho descritto sopra). Anche se, come ho detto ... per questa particolare colonna, non c'è nulla di "speciale" fatto. È solo un normale numero intero SQL (nullable) che è "AutoGenerato".
Possiamo vedere il codice di convalida? – SQLMason
Non ce n'è. È una bella griglia alla vaniglia. – Shayne