Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    710

    [WPF] Utilizzare IValueConverter ma nascondere il valore nella cella

    Ciao a tutti,
    nella mia applicazione WPF, ho una colonna età che comprendere un range da 0 a 100.


    Sto usando un Convert per impostare un colore di sfondo a una singola cella secondo sei range da me impostati....
    Vorrei colorare la cella, ma nascondere il valore numerico.

    La colorazione funziona, ma non riesco a nascondere il valore...


    Come posso fare questo?


    Questo è il mio codice:
    XAML:
    codice:
                        <DataGridTextColumn Binding="{Binding Age}" Header="Age - Color Range" Width="200">
                            <!-- COLOR CELLA -->
                            <DataGridTextColumn.ElementStyle>
                                <Style TargetType="{x:Type TextBlock}">
                                    <Setter Property="Background" Value="{Binding Age, Converter={StaticResource ColorToCell}}"/>
                                </Style>
                            </DataGridTextColumn.ElementStyle>
                        </DataGridTextColumn>
    C#
    codice:
    public class ColorToCell : IValueConverter
        {
    
    
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                int tempValue = int.Parse(value.ToString());
                string tempString = "Red";
                if (tempValue >= 0 && tempValue <= 20)
                    tempString = "#FF0000";
    
    
                if (tempValue > 20 && tempValue <= 40)
                    tempString = "#F09300";
    
    
                if (tempValue > 40 && tempValue <= 60)
                    tempString = "#EDDF00";
    
    
                if (tempValue > 60 && tempValue <= 80)
                    tempString = "#CC00FF55";
    
    
                if (tempValue > 80 && tempValue <= 100)
                    tempString = "#85AB00";
    
    
    
    
                SolidColorBrush brush = new SolidColorBrush();
                BrushConverter conv = new BrushConverter();
                brush = conv.ConvertFromString(tempString) as SolidColorBrush;
                return brush;
    
    
            }
    
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {                        
                return DependencyProperty.UnsetValue;
            }
        }

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di exFelino
    Registrato dal
    Jul 2014
    residenza
    Aci Catena (CT)
    Messaggi
    710
    Risolto, ho impostato il foreground del testo dello stesso colore della cella!
    codice:
    <DataGridTextColumn.ElementStyle>
    	<Style TargetType="{x:Type TextBlock}">
    		<Setter Property="Background" Value="{Binding Age, Converter={StaticResource ColorToCell}}"/>
    		<Setter Property="Foreground" Value="{Binding Age, Converter={StaticResource ColorToCell}}"/>
    	</Style>
    </DataGridTextColumn.ElementStyle>

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.