wpf 来自bool的XAML颜色绑定转换器不工作

eiee3dmh  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(180)

我试图使用转换器根据我的模型中的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 &#x0a;(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的数据绑定和单位转换器工作正常。

yi0zb3m4

yi0zb3m41#

要逐个单元格更改文本颜色,请使用以下解决方案:

<DataGridTextColumn 
    Header="Diameter &#x0a;(mm)"  
    Binding="{Binding Diameter, Mode=TwoWay, StringFormat={}{0:n0}, Converter={StaticResource UnitConverter}, ConverterParameter=1000}">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="Foreground" Value="{Binding DiameterCustom, Converter={StaticResource CustomColourConverter}}"/>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

相关问题