Vi sarà sicuramente capitato di avere una textbox in DataBinding con un campo di un qualche tipo di oggetto.
Come cambiare il formato di visualizzazione del dato nella textbox?
Beh, se utilizzate un vostro Business Object direi che avete pieno controllo e la domanda non si pone...forse.
Dico forse perchè potrebbe sempre nascere la possibilità di formattare il dato in un particolare formato e solo in una particolare textbox (o chi per lei).
Insomma, come risolvere questo (fastidioso ) problema?
Io ho risolto in questo modo (altri metodi sono ben accetti):
Dim Mybinding as new System.Windows.Forms.DataBinding
Mybinding = New Binding("Text", me.bindingsource1, "Prezzo")
textdatfield.DataBindings.Add(Mybinding)
AddHandler mybinding.Format, AddressOf FormattaValuta
Considerando di fare databinding direttamente ad un oggetto BindingSource (nome assolutamente mnemonico bindingsource1 ), sul campo "Prezzo".
Successivamente la funziona FormattaValuta, richiamata sull'evento Format del DataBinding sarà:
Private Sub FormattaValuta(ByVal sender As Object, _
ByVal cevent As ConvertEventArgs)
If Not cevent.Value Is system.DBNull.Value Then
cevent.Value = string.format("{0:c}",cevent.value)
End If
End Sub
In questo modo il vostro sarà formattato come currency, per maggiori dettagli consultate qui o, specificatamente per i numeri, qui.
Ciao!
powered by IMHO 1.3