PDA

View Full Version : [WPF] TextBlock: impostare la lunghezza del numero in "StringFormat"


robertino_salemi
14-05-2015, 09:01
Ciao,
sto formattando il TextBlock con:

<TextBlock Text="{Binding Value, StringFormat='\{0,0\}%'}"/>

per visualizzare un numero nel formato 99,9%.

Con questo formato stringa, l'utente può scrivere 9999999999%, e non va bene!

La parte intera deve essere massimo di 2 numeri, mentre la decimale non è vincolante...

Grazie.

[Kendall]
14-05-2015, 10:12
Ciao Robertino, qui non si tratta di formattazione del textbox, quanto di validazione dell'input. Nel controllo che usi per inserire il dato, o da qualunque sorgente esso arrivi, dovrai eseguire un controllo sul valore immesso, validarlo per verificare che sia entro i limiti previsti e quindi reagire di conseguenza (per esempio se il valore inserito sfora il massimo potresti impostarlo automaticamente al massimo, o puoi usare qualsiasi logica di controllo tu preferisca in base alla tua situazione).

robertino_salemi
14-05-2015, 11:55
Forse potrei provare con un converter....

[Kendall]
14-05-2015, 14:12
Forse potrei provare con un converter....

Un converter non valida il dato, lo trasforma e basta. Se permetti all'utente di inserire un dato che non è convalidato ed è al di fuori del range previsto ti ritroverai con un modello dati inconsistente. quel valore immesso andrai pure ad utilizzarlo da qualche parte (leggi, il tuo codice da qualche parte andrà pure ad elaborarlo), quindi se ti ritrovi ad elaborare un valore di 9999, quando il massimo previsto è per esempio 99, capisci che qualcosa non torna.

robertino_salemi
15-05-2015, 11:27
Hai ragione, il Convert eseguo solo un validazione fittizia.

Ho inserito un controllo diretto all'invio di tale informazioni.

Grazie sempre! ;)