我试图使用转换器根据我的模型中的bool
更改datagrid
中的文本颜色,但我得到以下错误。
系统.窗口.数据错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement。绑定表达式:路径=DiameterCustom;数据项=空;目标元素为“DataGridTextColumn”(哈希代码=7886611);目标属性为“前景”(类型为“画笔”)
有人知道这是为什么吗?
我的xaml如下:
<UserControl.Resources>
<conv:UnitConverter x:Key="UnitConverter"></conv:UnitConverter>
<conv:CustomColourConverter x:Key="CustomColourConverter"></conv:CustomColourConverter>
</UserControl.Resources>
<DataGridTextColumn
Header="Diameter 
(mm)"
Binding="{Binding Diameter, Mode=TwoWay, StringFormat={}{0:n0}, Converter={StaticResource UnitConverter}, ConverterParameter=1000}"
Foreground="{Binding DiameterCustom, Converter={StaticResource CustomColourConverter}}"/>
这是我的转换器:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool v = (bool)value;
if (v == true)
{
//return return System.Windows.Media.Brushes.Red;
return new SolidColorBrush(Colors.Red);
}
//return return System.Windows.Media.Brushes.Blue;
return new SolidColorBrush(Colors.Blue);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
为了完整起见,下面是我模型属性:
private bool diameterCustom;
public bool DiameterCustom
{
get { return diameterCustom; }
set { SetAndNotify(ref this.diameterCustom, value); }
}
请注意,Diameter的数据绑定和单位转换器工作正常。
1条答案
按热度按时间yi0zb3m41#
要逐个单元格更改文本颜色,请使用以下解决方案: