Я часами гуглял эту проблему и не мог понять, в чем дело.
У меня есть следующий конвертер, который просто возвращает Brushes.Red (также пробовал Colors.Red), но все равно не повезло.
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.");
}
}
Теперь у меня в xaml есть следующий код:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Value}" TextAlignment="Center" Foreground="{Binding Path=color, Converter={x:Static local:ColorConverter.Instance}}" Margin="2"/>
</StackPanel>
Я установил следующее пространство имен вверху:
xmlns:local="clr-namespace:Dashboard"
Теперь у меня есть следующий класс, связанный с панелью стека:
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));
}
}
}
Привязка данных (Value) работает отлично, но преобразователь не хочет срабатывать, я пытался установить точку останова в методе Convert в covnerter, но это не срабатывает при отладке, это просто если мой отладчик не вызывается.
Может кто-нибудь пролить свет на это?