在WPF中使用DataGrid控件,需要实现一个要求:
在一个列中,除了第一格文字颜色固定为黑色外,其它每个单元格的文字色要根据其上方的单元格的内容来决定,比如这样列标题
0红色
1黄色
2绿色
3蓝色我能想到的方法是为列的单元格前景色设置绑定,绑定到上一个单元格的文本,并添加转换器将文本转换成颜色.
但不知道如何才能绑定上一格,请知道的朋友指点一下,谢谢也想过能否直接在数据源上加上颜色信息,但也失败了,原因是DataGrid在运行时可能会被排序,而排序动作是无法影响到数据源的顺序的,也就是说一旦用户进行排序,数据源就无法判断每个单元格上面的到底是哪一格了.

解决方案 »

  1.   

    需要定义枚举或者常量,关联你的颜色和对应的rgb值,然后根据行号- 1得到文字,转换为颜色,再设置。
      

  2.   

    但不知道如何才能绑定上一格,
    ->"上一格“表述的太笼统,转换器是可以的。 根据的当前行可以获取到当前行的索引,具体查询WPF的IndexFromContainer方法。根据索引再取的上一行数据,获取对应的单元格值改变颜色即可。