wpf datagrid row前台代码在后面

时间:2012-07-06 17:18:51

标签: wpf datagrid foreground

我不想使用MVVM并希望在代码后面(在SelectionChanged EventHandler函数中)更改我的数据网格上的选定行Foreground,但我找不到可靠的方法。

我的行可以是黑色,蓝色和红色,但根据某些条件显示具有更高优先级的颜色。选择当前行后我应该删除,f.e。我的优先列表中的黑色。

我有一些课程:

public class TempClass{ public string cell1 { get; set; }; public string cell2 { get; set; };}

TempClass[] collection; 

与我的数据网格绑定:

datagrid.ItemsSource = collection;

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

var rowStyle = new Style {TargetType = typeof (DataGridRow)};
rowStyle.Setters.Add(new Setter(ForegroundProperty, Brushes.Green));
var rowTrigger = new Trigger {Property = DataGridRow.IsSelectedProperty, Value = true};
rowTrigger.Setters.Add(new Setter(ForegroundProperty, Brushes.Red));
rowTrigger.Setters.Add(new Setter(BackgroundProperty, Brushes.Orange));
rowStyle.Triggers.Add(rowTrigger);

var cellStyle = new Style {TargetType = typeof (DataGridCell)};
var cellTrigger = new Trigger {Property = DataGridCell.IsSelectedProperty, Value = true};
cellTrigger.Setters.Add(new Setter(ForegroundProperty, Brushes.Red));
cellTrigger.Setters.Add(new Setter(BackgroundProperty, Brushes.Orange));
cellStyle.Triggers.Add(cellTrigger);

datagrid.RowStyle = rowStyle;
datagrid.CellStyle = cellStyle;