1. 程式人生 > 其它 >WPF datagrid中根據不同值改變字型顏色

WPF datagrid中根據不同值改變字型顏色

引用網址:https://blog.csdn.net/qq_29844879/article/details/80200568

我這裡是使用的轉換器,直接上程式碼(部分程式碼)。

後臺程式碼:

namespace MyControlLibrarys
{
/ 定義轉換器
[ValueConversion(typeof(string), typeof(SolidColorBrush))]
public class DataColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null || value.ToString() == "")
return "";

if (value.ToString() == "不通過")//這裡根據你裡面的值自己寫判斷條件
{
try
{
return new SolidColorBrush(Colors.Red);
}
catch
{ throw; }
}

return new SolidColorBrush(Colors.Black);
}

public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}

xmal:

xmlns:local="clr-namespace:MyControlLibrarys"

//包含資源
<UserControl.Resources>
<ResourceDictionary>
<local:DataColorConverter x:Key="DataColorConverterStyle"/>
</ResourceDictionary>
</UserControl.Resources>

<DataGrid Grid.Row="1" Grid.Column="0" Name="dgData" AutoGenerateColumns="False" CanUserAddRows="False" GridLinesVisibility="All">
<DataGrid.Columns>
<DataGridTextColumn Width="0.8*" Header="序號" ElementStyle="{StaticResource contentCenterStyle}" Binding="{Binding Path=OrderId, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
<DataGridTextColumn Header="測試步驟" Width="2*" Binding="{Binding Path=step, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
<DataGridTextColumn Header="測試內容" Width="2*" Binding="{Binding Path=content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
<DataGridTextColumn Header="標準" Width="2*" Binding="{Binding Path=standard, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
<DataGridTextColumn Header="實測" Width="2*" Binding="{Binding Path=actual, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></DataGridTextColumn>
<!--DataGridTextColumn Header="結論" Width="2*" Binding="{Binding Path=conclusion, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" Foreground="{Binding Path=conclusion, Converter={StaticResource DataColorConverterStyle}}"></-->
<!--這裡一定要用下面這種格式才能成功-->
<DataGridTemplateColumn Width="2*" Header="結論">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=conclusion,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
Foreground="{Binding Path=conclusion,Converter={StaticResource DataColorConverterStyle}}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
效果:


————————————————
版權宣告:本文為CSDN博主「creay_king」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_29844879/article/details/80200568