J'ai recherché ce problème pendant des heures et je ne vois pas où je me trompe.IValueCOnverter ne fonctionne pas
J'ai le convertisseur suivant qui retourne juste Brushes.Red (ont essayé Colors.Red) aussi bien mais toujours pas de chance.
public class ColorConverter : IValueConverter
{
private static ColorConverter instance = new ColorConverter();
public static ColorConverter Instance
{
get
{
return instance;
}
}
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return Brushes.Red;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}
Maintenant, dans mon XAML je le code suivant:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Value}" TextAlignment="Center" Foreground="{Binding Path=color, Converter={x:Static local:ColorConverter.Instance}}" Margin="2"/>
</StackPanel>
J'ai mis Teh espace de noms suivant en haut:
xmlns:local="clr-namespace:Dashboard"
Maintenant, j'ai la classe suivante qui est binded vers le panneau de pile:
public class MyClass : INotifyPropertyChanged
{
public String Value;
public Color color;
// Declare the PropertyChanged event
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
}
La liaison de données (Value) fonctionne parfaitement, mais le convertisseur ne veut pas lancer, j'ai essayé de définir un point d'arrêt dans la méthode Convert du covnerter, mais cela ne se déclenche pas lors du débogage, il semble juste que mon le débogueur n'est pas appelé.
Quelqu'un peut-il nous éclairer à ce sujet?
ouais, je n'ai même pas pris la peine de regarder leurs déclarations parce que ça ressemblait à tout mais le convertisseur fonctionnait. :) – Dave