WPF DataGrid 改变单元格字体颜色或单元格背景颜色(二)
2012-11-28 10:57
1436 查看
与上一篇 WPF DataGrid 改变单元格字体颜色或单元格背景颜色(一) 里的后台实现方法一样,改变前台XAML代码:
前台XAML代码:
这里列单元格模版里的Foreground直接绑定后台的Color属性,要将其变为什么颜色,可在后台代码里进行控制,然后直接绑定到前台代码中。
如下面后台代码中所示的:
后台代码:
前台XAML代码:
<Window x:Class="WpfDataGridCellColors.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:loca="clr-namespace:WpfDataGridCellColors" Title="MainWindow" Height="261" Width="649"> <Window.Resources> <loca:ColorConverter x:Key="MyColorConvert"/> </Window.Resources> <Grid> <DataGrid CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False" IsReadOnly="True" Name="dataGrid" Background="White" GridLinesVisibility="All" Margin="5" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible" HeadersVisibility="Column" AlternationCount="2"> <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Title}" Header="项目" Width="150"/> <DataGridTemplateColumn Width="150" > <DataGridTemplateColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="A" /> </DataTemplate> </DataGridTemplateColumn.HeaderTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding IA}" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="{Binding AFColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Width="150" > <DataGridTemplateColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="B" /> </DataTemplate> </DataGridTemplateColumn.HeaderTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding IB}" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="{Binding BFColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTemplateColumn Width="150" > <DataGridTemplateColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="C" /> </DataTemplate> </DataGridTemplateColumn.HeaderTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding IC}" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="{Binding CFColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window>
这里列单元格模版里的Foreground直接绑定后台的Color属性,要将其变为什么颜色,可在后台代码里进行控制,然后直接绑定到前台代码中。
如下面后台代码中所示的:
ContrastList.Add(new Contrasts() { Title = "减数", IA = 110, AFColor = Brushes.Black, IB = 220, BFColor = Brushes.Red, IC = 330, CFColor = Brushes.Green });
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfDataGridCellColors
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private List<Contrasts> _ContrastList;
public List<Contrasts> ContrastList
{
get { return _ContrastList; }
set
{
_ContrastList = value;
}
}
public MainWindow()
{
InitializeComponent();
ContrastList = new List<Contrasts>();
ContrastList.Add(new Contrasts() { Title = "减数", IA = 110, AFColor = Brushes.Black, IB = 220, BFColor = Brushes.Red, IC = 330, CFColor = Brushes.Green });
dataGrid.ItemsSource = ContrastList;
}
}
public class Contrasts
{
private string _Title;
public string Title
{
get { return _Title; }
set { _Title = value; }
}
private double _IA;
public double IA
{
get { return _IA; }
set { _IA = value; }
}
private double _IB;
public double IB
{
get { return _IB; }
set { _IB = value; }
}
private double _IC;
public double IC
{
get { return _IC; }
set { _IC = value; }
}
private SolidColorBrush _AFColor;
public SolidColorBrush AFColor
{
get { return _AFColor; }
set { _AFColor = value; }
}
private SolidColorBrush _BFColor;
public SolidColorBrush BFColor
{
get { return _BFColor; }
set { _BFColor = value; }
}
private SolidColorBrush _CFColor;
public SolidColorBrush CFColor
{
get { return _CFColor; }
set { _CFColor = value; }
}
}
}
相关文章推荐
- WPF DataGrid 改变单元格字体颜色或单元格背景颜色(一)
- wpf datagrid 单元格颜色 根据条件改变颜色 根据表datatable动态显示datagrid内容
- wpf datagrid 单元格根据内容改变颜色
- WPF中datagrid控件如何获得某个单元格并改变其背景颜色
- 改变DataGrid单元格字体颜色
- 在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色
- 改变List列表控件中的字体颜色和单元格背景颜色
- [原创]可改变单元格字体和背景颜色的CListCtrl
- Flex 自定义DataGrid实现根据条目某一属性值改变背景颜色
- GridView(DataGrid)根据单元格改变单元格颜色简单做法
- C语言怎么改变窗口的字体颜色和背景颜色?
- Button点击背景和字体颜色改变的实现方法
- 改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
- WPF 设置DataGrid 鼠标移动改变行颜色样式
- VC 编辑框 改变背景、字体、文本颜色、长度限制、英文 汉字判断收藏
- RadioGroup 的 RadioButton 选择改变字体颜色和背景颜色
- eclipse改变字体大小和背景颜色
- 在shell或者perl中改变字体或背景的颜色
- ExtJS4 Grid改变单元格背景颜色及Column render学习
- VC改变控件的背景颜色 字体 文本颜色