MISE À JOUR: Nettoyez le sujet et résumez-le.WPF - Liaison de plusieurs valeurs à un code de données
Salut, J'ai un rempli datable, où chaque cellule est une classe comme celui-ci
class CValue{
public object Value;
public Brush Quality;
private int m_quality;
public override String toString(){
return Value.toString();
}
}
Mon DataGrid lie le datable, et cela fonctionne bien. Mais mon but est de changer la couleur de fond de la cellule en fonction de la valeur de qualité.
Je compte tu utiliser DataTemplate mais ne sais pas comment ça fonctionne du tout ...
<dg:DataGrid Name="DataGridResult" IsReadOnly="True" AutoGenerateColumns="False"
BorderThickness="1" BorderBrush="{DynamicResource clBLACK}"
CanUserReorderColumns="False"
ItemsSource="{Binding Path=Result}">
<dg:DataGrid.Resources>
<Style TargetType="{x:Type dg:DataGridCell}">
<Style.Setters>
<Setter Property="Background" Value="{Binding [1].Quality}"/>
</Style.Setters>
</Style>
</dg:DataGrid.Resources>
<dg:DataGrid.ItemTemplate>
<DataTemplate>
<dg:DataGridCell>
</dg:DataGridCell>
</DataTemplate>
</dg:DataGrid.ItemTemplate>
</dg:DataGrid>
En fait, si la valeur du compositeur de l'arrière-plan est réglé sur « Blue », toutes les cellules sont bleui, donc c'est bon, mais je ne peux pas trouver un moyen de le lier à ma propriété. le [1] semble retourner la colonne 1 de la ligne ...
Comment définir la cellule dynamiquement? Parce que j'ai un nombre dynamique de colonnes mais tout le type CValue.
Vous ne voulez pas vraiment avoir un pinceau pour la qualité, n'est-ce pas? Bien sûr, vous pouvez avoir mais je dirais que son plus propre à utiliser un convertisseur ou DataTrigger pour la liaison de valeur. – Almund
Yeap mais en fait j'ai besoin de mettre des valeurs et des couleurs dans la configuration, donc dans le code. Je suis à la recherche de la manière la plus simple :) – ykatchou
Ok, cus dans ce cas vous n'avez pas vraiment besoin de convertisseurs, juste lier à la qualité directement Background = {Binding Quality}. Aimeriez-vous un petit exemple de l'application avec .cs qui démontre ce que je pense que vous essayez de faire? – Almund