93 messaggi dal 22 marzo 2012
Buon pomeriggio Lista

Sono sempre alla prese con i DataGrid
In una finestra del progetto ho inserito un DataGrid senza colonne in quanto queste vengono rese palesi solo a Run time.
Con una procedura creo le colonne e inserisco i valori in un DataRow che viene aggiunto ad un DataTable che fa da ItemSource al DataGrid.
Fino a qui funziona tutto,.
Il problema nasce dal fatto che vorrei che alcune celle fossero colorate in base la parametro True o False.
Ho provato a trovare la soluzione in creazione della DataRow ma non ho trovato nessun esempio da cui poter capire e allora mi sono spostato sulla DataGrid per gestirlo (la seconda cosa non mi piace molto in quanto su una grande base dati creerebbe un collo di bottiglia).
Comunque non ho trovato nessun esempio da cui capire come fare ne nella prima soluzione (DataRow) ne nella seconda (DataGrid).
Nel web si trovano molti esempi su DataGridView (che non esiste più) per colorare le celle o su come colorare tutta la row con il DataGrid.
Sembra che nessuno abbia avuto questo problemino.... o sono io che non sono capace di effettuare le ricerche giuste.
Qualcuno di voi ha mai avuto questo problema e l'ha risolto?
Speranzoso e in attesa di un vostro aiuto invio cordiali salut


Luca Perini

Perini Luca
3 messaggi dal 22 febbraio 2009
Ciao Sei riuscito a risolvere il tuo problema?

Io avevo usato una cosa del genere....

public class ValueToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int input;
try
{
DataGridCell dgc = (DataGridCell)value;
System.Data.DataRowView rowView = (System.Data.DataRowView)dgc.DataContext;
input = (int)rowView.Row.ItemArray[dgc.Column.DisplayIndex];
}
catch (InvalidCastException e)
{
return DependencyProperty.UnsetValue;
}
switch (input)
{
case 1: return Brushes.Red;
default: return DependencyProperty.UnsetValue;
}
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
}





<UserControl.Resources>
<conv:ValueToBrushConverter x:Key="ValueToBrushConverter"/>
<Style x:Key="CellStyle" TargetType="DataGridCell">
<Setter Property="Background" Value="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource ValueToBrushConverter}}" />
</Style>
</UserControl.Resources>
<DataGrid x:Name="dataGrid" CellStyle="{StaticResource CellStyle}">
</DataGrid>
......


Saluti
Paolo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.