Telerik 数据列前景颜色转换器不工作

Telerik Data Column Foreground Color Converter Not Working

我在更改 Telerik DataGrid 列中文本框的文本颜色时遇到问题。

XAML:

<telerik:RadGridView x:Name="RobotsGrid" AutoGenerateColumns="False" CanUserFreezeColumns="False" ItemsSource="{Binding Robots}" ShowGroupPanel="False" ShowInsertRow="False" RowIndicatorVisibility="Collapsed" CanUserDeleteRows="False" telerik:StyleManager.Theme="Office_Blue"  SelectionMode="Extended" CellEditEnded="RobotsGrid_CellEditEnded" EnableColumnVirtualization="False" Filtered="WorkItemsGrid_Filtered" SelectionChanged="RobotsGrid_SelectionChanged" EnableRowVirtualization="True" IsBusy="{Binding Path=RobotsRefreshing, Mode=OneWay}">
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn Width="200" Header="Status" IsReadOnly="True">
                    <telerik:GridViewDataColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Path=Status}" Foreground="{Binding Path=Success, Converter={StaticResource BoolToColorConverter} }" IsReadOnly="True" IsTabStop="False" PreviewKeyDown="SelectKeyDown" PreviewMouseDown="SelectParentRow" TextWrapping="Wrap" Tag="{Binding}" BorderThickness="0" Margin="5,0"/>
                        </DataTemplate>
                    </telerik:GridViewDataColumn.CellTemplate>
                </telerik:GridViewDataColumn>
             <telerik:RadGridView.Columns>
  </telerik:RadGridView>

网格绑定了一个ObservableCollection<Robots>,每个机器人都有一个string Statusbool Success。我已经绑定了工作正常的 Texbox 的 Text 属性,但是前景设置不正确。 Robot 实现 INotify属性 改变了,在 setter 我调用 OnPropertyChanged()

我已经对 Foreground 进行了硬编码并按预期工作,看起来好像转换器没有按预期工作。

这是转换器:

public class BoolToColorConverter : IValueConverter {
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
        if (value != null) {
            var success = System.Convert.ToBoolean(value);
            if (success)
                return Brushes.Green;
            else
                return Brushes.Red;
        }

        return Brushes.Blue;
    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
        return Brushes.Black;
    }
}

我没有收到任何错误,我已经逐步完成代码并且转换器被命中,它 returns Brushes.Green 正如预期的那样,但我仍然没有看到前景实际上改变。我已经尝试将转换器用于 return 一个字符串并将其用于 Text 属性 - 它按预期工作。

我是否漏掉了一些显而易见的东西?

编辑:转换器被击中后,我在输出中得到这个 window :

System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=Success; DataItem='RobotManagerLite' (HashCode=21433709); target element is 'TextBox' (Name=''); target property is 'Foreground' (type 'Brush')

这是一个愚蠢的问题 - 只是使用 System.Windows.Media.Brushes 而不是 System.Drawing.Brushes 的问题。 FML