Visualizzare caratteri maiuscoli nei controlli.
-
domenica 22 luglio 2012 19:08
Ciao a tutti.
Come da oggetto, sto cercando di visualizzare in maiuscolo i caratteri in due controlli: DataGrid e ComboBox.
La mia esigenza è circoscritta alla visualizzazione; non ho necessità di convertire le stringhe con il metodo ".ToUpper" .
Ho cercato, ma non trovato; è possibile?
Grazie in anticipo.
Fabrizio Alessandri
- Modificato Fabrizio Alessandri domenica 22 luglio 2012 19:56
Tutte le risposte
-
domenica 22 luglio 2012 21:40
Ciao,
non so se ho capito bene, ma non ti basta fare un converter che restituisca una cosa del genere;
return char.ToUpper(s[0]) + s.Substring(1);
(ovviamente 's' è l'ipotetica stringa in ingresso)
Amedeo.
- Contrassegnato come risposta Fabrizio Alessandri lunedì 30 luglio 2012 21:55
-
domenica 22 luglio 2012 21:53
Ciao,
non so se ho capito bene, ma non ti basta fare un converter che restituisca una cosa del genere;
return char.ToUpper(s[0]) + s.Substring(1);
(ovviamente 's' è l'ipotetica stringa in ingresso)
Amedeo.
Ciao,
Avevo precisato proprio che non ho necessità di convertire la stringa, con il suddetto metodo. Altererei l'input originario e non sono certo (per ora) di poterlo fare. Mi è sufficiente visualizzare in maiuscolo e basta.
In altri linguaggi è banale. Con WPF forse uno stile?Grazie della risposta.
Fabrizio Alessandri
- Modificato Fabrizio Alessandri domenica 22 luglio 2012 22:00
-
lunedì 23 luglio 2012 20:45
Ciao,
io ti suggerirei un Converter da applicare al binding sul tuo DataGrid/ sulla tua ComboBox.
http://msdn.microsoft.com/it-it/library/system.windows.data.ivalueconverter.aspx
Il codice da inserire nel Converter, precisamente nel metodo Convert, sarà il codice da utilizzare per trasformare la tua stringa.
Se volessi fare un "Capitalize" della tua stringa potresti utilizzare il codice postato da damgau.
Spero di esserti stato di aiuto,
Saluti,
Andrea
-
martedì 24 luglio 2012 12:25
Ciao,
io ti suggerirei un Converter da applicare al binding sul tuo DataGrid/ sulla tua ComboBox.
http://msdn.microsoft.com/it-it/library/system.windows.data.ivalueconverter.aspx
Il codice da inserire nel Converter, precisamente nel metodo Convert, sarà il codice da utilizzare per trasformare la tua stringa.
Se volessi fare un "Capitalize" della tua stringa potresti utilizzare il codice postato da damgau.
Spero di esserti stato di aiuto,
Saluti,
Andrea
Ciao,
sostanzialmente mi suggerisci la stessa soluzione proposta da damgau, malgrado avessi escluso a priori questo metodo.
Evidentemente non ci sono altre soluzioni. E' anche vero che ignorando il ConvertBack non si modificano i dati. Auspicavo in qualcosa di più "immediato".
Se nessuno ha alternative, provo con il converter e poi aggiorno il post.
Intanto grazie.Fabrizio Alessandri
-
martedì 24 luglio 2012 13:58
Ciao,
si in effetti ora che rileggo meglio quanto scritto da damgau ho proposto la stessa soluzione!
Un altra possibilità potrebbe essere l'uso di Typography.Capitals direttamente da XAML anche se bisogna fare attenzione in quanto non tutte le trasformazioni, a quanto mi risulta, sono applicabili a tutti i font, SmallCaps se non ricordo male è una di quelle.
http://msdn.microsoft.com/en-us/library/system.windows.documents.typography.capitals.aspx
Spero che questo sia più congeniale alle tue esigenze,
Saluti,
Andrea
-
venerdì 27 luglio 2012 14:12
Ciao,
ti chiedo scusa se non ho capito bene.... però lasciami insistere, applicando in converte non alteri l'informazione in input, cambieresti solo la sua visualizzazione.
Amedeo.
-
venerdì 27 luglio 2012 18:15
Ciao,
ti chiedo scusa se non ho capito bene.... però lasciami insistere, applicando in converte non alteri l'informazione in input, cambieresti solo la sua visualizzazione.
Amedeo.
Ciao damgau,
come ho scritto ad Andrea, mi sonricordato che ignorando il ConvertBack non si produce alterazione sui dati. Perdonate se ho frainteso, ma sono un neofita e il Converter lo ho solo studiato, ma mai applicato.
Purtroppo in questi giorni mi è davvero mancato il tempo di provarlo. Spero al più presto di poterlo verificare, così da darvi celere risposta, come lo sono stati i Vs. suggerimenti.
Fabrizio Alessandri
-
lunedì 30 luglio 2012 22:03
Ho finalmente potuto dedicarmi allo studio di questo Converter, anche se ho trovato qualche difficoltà ad implementarlo nello XAML, causa la mia inesperienza; ora lo farei ad occhi chiusi, tanto è semplice.
Scusate ancora per il ritardo nel rispondere.
Grazie damgau.P.S.
Ho ritenuto corretto assegnare la risposta al primo che si è pronunciato, ma Grazie 1.000 anche a te Andrea (mi avevi già aiutato in altro thread)!Public Class MaiuscoleConverter Implements IValueConverter Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert Dim stringa As String = value.ToString Return stringa.ToUpper End Function Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack Return Nothing End Function End Class<Window.Resources> <my:MaiuscoleConverter x:Key="MaiuscoleConverter"/> </Window.Resources> <DataGridTextColumn x:Name="TipoColumn" Binding="{Binding Path=Tipo, Converter={StaticResource MaiuscoleConverter}}" Header="Tipo" Width="SizeToHeader" />
Fabrizio Alessandri
- Modificato Fabrizio Alessandri lunedì 30 luglio 2012 22:12
-
martedì 31 luglio 2012 06:30
Ma scherzi, ci mancherebbe!! il primo a consigliarti tale soluzione è stato lui ed è giusto che la risposta scelta fosse la sua ^^P.S.
Ho ritenuto corretto assegnare la risposta al primo che si è pronunciato, ma Grazie 1.000 anche a te Andrea (mi avevi già aiutato in altro thread)!

