J'essaie de comprendre le meilleur moyen de créer un style / déclencheur pour régler le premier plan au rouge, lorsque la valeur est <0. Quelle est la meilleure façon de faire cela? Je suppose que Datatriggigriggigriggigriggigriggigriggy, mais comment puis-je vérifier la valeur négative, dois-je créer mon propre IValueconverter? P>
3 Réponses :
Si vous n'utilisez pas de modèle MVVM (où vous pourriez avoir une propriété de premier plan), la tâche la plus facile à faire est de créer un nouvel iValueconverter, de lier votre arrière-plan à votre valeur.
valeur de valeurOrgrackColorconverter.cs strong> p> using System;
using System.Windows.Media;
using System.Windows.Data;
namespace MyLocalNamespace
{
class ValueToForegroundColorConverter: IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
SolidColorBrush brush = new SolidColorBrush(Colors.Black);
Double doubleValue = 0.0;
Double.TryParse(value.ToString(), out doubleValue);
if (doubleValue < 0)
brush = new SolidColorBrush(Colors.Red);
return brush;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
}
Cela fonctionnerait, bien que je préfère créer une sorte de style (plus facile à réimplément), pourquoi cela ne fonctionnerait-il pas avec MVVM?
@Lndcobra: Cela fonctionnera avec MVVM. Ce que je pense que Wonko signifie, c'est qu'avec MVVM, vous pouvez choisir d'exposer une propriété FouchegroundColor sur votre viewModel au lieu d'utiliser un ValueConverter.
@Jakob: absolument correct. @LnDCOBRA: Vous pouvez implémenter un style, avec la valeur de la propriété de premier plan définie sur la même liaison que ci-dessus.