【发布时间】:2016-09-14 10:03:15
【问题描述】:
我有一个 SolidColorBrush 类型的对象,它拥有 一个 SolidColorBrush。
现在我有一个绑定到列表的 dataGrid 转换器。 此 dataGrid 中的每一行都将由我拥有的转换器着色。
一切正常,但我怎样才能返回我的 SolidColorBrush 对象,而不是例如静态“Brushes.Red”。
我的转换器:
[ValueConversion(typeof(MainWindow.eErrorLevel), typeof(Brush))]
public class TypeToColourConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
MainWindow.eErrorLevel errorLevel = (MainWindow.eErrorLevel)value;
switch (errorLevel)
{
case MainWindow.eErrorLevel.Information:
return Brushes.Red;
case MainWindow.eErrorLevel.Warning:
return Brushes.Yellow;
case MainWindow.eErrorLevel.Error:
return Brushes.Red;
}
return Brushes.Gray;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotSupportedException();
}
#endregion
}
我的转换器不在主窗口中,如果这很重要的话 我的 MainWindow 中的我的 SolidColorBrush 对象是公开的:
public CurrentColor CurrentColors = new CurrentColor();
public class CurrentColor
{
public SolidColorBrush ERROR { get; set; }
public SolidColorBrush WARNING { get; set; }
public SolidColorBrush INFORMATION { get; set; }
}
编辑:我的画笔可以由用户自己动态设置
EDIT2:现在它的工作谢谢大家:)
【问题讨论】:
-
您可以传递
CurrentColor(StaticResource) 的实例作为转换器参数。 -
你能解释一下这是怎么做的吗?
-
您还可以将三个 SolidColorBrush 属性放入您的 TypeToColourConverter 类中,并在声明转换器资源时设置它们的值。
标签: c# .net wpf solidcolorbrush