回答済み 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


Tutte le risposte

  • domenica 22 luglio 2012 21:40
     
     Con risposta

    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.

  • 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


  • 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
     
      Contiene codice

    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


  • martedì 31 luglio 2012 06:30
     
     

    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)!

    Ma scherzi, ci mancherebbe!! il primo a consigliarti tale soluzione è stato lui ed è giusto che la risposta scelta fosse la sua ^^