我有
if (e.PropertyType == typeof(bool))
{
e.Column.Header = "Status";
DataGridTemplateColumn templateColumn = new DataGridTemplateColumn();
templateColumn.Header = "Status";
DataTemplate imageTemplate = new DataTemplate();
DataTrigger imageBoolTrigger = new DataTrigger();
Converter.BoolToImage boolToImage = new Converter.BoolToImage();
Uri trueImageURI = new Uri(@"pack://application:,,,/MonitorView_wpf;component/Images/Icons/check-mark-16.png", UriKind.RelativeOrAbsolute);
boolToImage.TrueImage.Source = new BitmapImage(trueImageURI);
imageBoolTrigger.Binding = new Binding { Converter = boolToImage, ConverterParameter = e.Column };
imageTemplate.Triggers.Add(imageBoolTrigger);
templateColumn.CellTemplate = imageTemplate;
e.Column = templateColumn;
}
但唉,它不工作。
如何使用图像而不是自动生成的复选框?
我的转换器如下所示:
public class BoolToImage : IValueConverter
{
public Image TrueImage { get; set; }
public Image FalseImage { get; set; }
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (!(value is bool))
{
return null;
}
bool b = (bool) value;
if (b)
{
return this.TrueImage;
}
else
{
return this.FalseImage;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
我的图像确实存在于程序集中,它是一个 png - 我尝试了各种各样的东西,但从来没有工作过。
提前致谢