运行效果见上图, 可以根据单元格中的值来设置颜色,100%为红色,其他为绿色。
实现方法:用列模板绑定数据源中定义的颜色数据项。
其中列模板用Border加TextBox构成,代码如下:
private static DataTemplate MakeCellTemplate(MyColumn col)
{
try
{
DataTemplate dt1 = new DataTemplate();
StringBuilder xaml = new StringBuilder();
xaml.Append("<DataTemplate ");
xaml.Append("xmlns='http://schemas.microsoft.com/client/2007' ");
xaml.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
xaml.Append(">");
xaml.Append("<Border ");
xaml.Append("BorderThickness='0.5' BorderBrush='LightGray' Background='Orange'>");
xaml.Append("<TextBox ");
xaml.Append("IsReadOnly='True' Text='{Binding " + col.Name + "}' Foreground='Black' BorderBrush='White' BorderThickness='0' Background='{Binding " + col.colorValue + "}'");
xaml.Append("/>");
xaml.Append("</Border>");
xaml.Append("</DataTemplate>");
dt1 = (DataTemplate)XamlReader.Load(xaml.ToString());
return dt1;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
return null;
}
}
posted on 2010-12-07 16:17
天书 阅读(2528)
评论(0) 编辑 收藏 引用