我正在嘗試使用轉換器datagrid根據bool模型中的 a 更改文本顏色,但出現以下錯誤。
System.Windows.Data 錯誤:2:找不到目標元素的管理 FrameworkElement 或 FrameworkContentElement。系結運算式:路徑=直徑自定義;資料項=空;目標元素是“DataGridTextColumn”(HashCode=7886611);目標屬性是“前景”(型別“畫筆”)
有人知道為什么嗎?
我的xml如下:
<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); }
}
請注意,直徑和單位轉換器的資料系結作業正常。
uj5u.com熱心網友回復:
要逐個單元格更改文本顏色,以下解決方案有效:
<DataGridTextColumn
Header="Diameter 
(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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520475.html
