我在更改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;)
答案 0 :(得分:1)
这是一个愚蠢的问题 - 只需使用System.Windows.Media.Brushes而不是System.Drawing.Brushes。 FML