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

时间:2016-10-10 15:27:21

标签: c# .net wpf xaml converter

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

XAML:

e.ordernum

网格绑定到<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 Status。我绑定了Texbox的bool Success属性工作正常,但前景没有正确设置。 Text实现了INotifyProperty的更改,并且在setter中我调用了Robot

我已经对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; } } ,但我仍然没有看到Foreground更改。我已经尝试使用转换器返回一个字符串并在Brushes.Green属性上使用它 - 它按预期工作。

我错过了一些完全明显的东西吗?

编辑:转换器被点击后我在输出窗口中看到了这个:

  

System.Windows.Data信息:10:无法使用绑定检索值,并且不存在有效的回退值;使用默认值。 BindingExpression:路径=成功;的DataItem =&#39; RobotManagerLite&#39; (的HashCode = 21433709);目标元素是&#39; TextBox&#39; (名称=&#39;&#39);目标财产是前景&#39; (键入&#39;刷&#39;)

1 个答案:

答案 0 :(得分:1)

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