布尔转换器来打印图像,只需打印图像名称c#即可
本文关键字:图像 打印 即可 转换器 布尔 | 更新日期: 2023-09-27 18:25:14
我有一个包含布尔值的DataGridTextColumn,这些布尔值在Column上返回TRUE或FALSE。
我想用两个图像来代替它,一个表示TRUE,一个代表FALSE。
这是数据网格:
<DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=ResultatCollectionGrande}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtualization="True" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTextColumn x:Name="PrisEnCompte" Width="50" Binding="{Binding Path=Flag, Converter={StaticResource BooleanConverter}}" Header="PEC"></DataGridTextColumn>
使用资源:
<Window.Resources>
<local:BooleanConverter x:Key="BooleanConverter"/>
</Window.Resources>
这是转换器:
public class BooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.Equals(true)) return @"booleanTrue.png";
return @"booleanFalse.png";
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
转换器工作,它改变了我的DataGridTextColumn显示的内容。现在它显示"booleanTrue.png"表示TRUE和"booleanPalse.png",但不显示图像。
我该如何显示,在我的DataGrid中打印这些图像缺少什么?
提前感谢您的帮助。
不使用DataGridTextColumn,而是需要Template列在此列中显示Image,并仅在此模板列中应用绑定。让我告诉你的路
你的数据网格应该像这个
<DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=ResultatCollectionGrande}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtualization="True" RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTemplateColumn Header="PEC" x:Name="PrisEnCompte">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Height="50" Width="50" Source="{Binding Path=Flag, Converter={StaticResource booleanConverter}}"></Image>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
你的布尔转换器应该是这样的。
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.Equals(true))
return new Uri(@"C:'Users'pj827192'Desktop'Untitled.png");
return new Uri(@"C:'Users'Public'Pictures'Sample Pictures'Hydrangeas.jpg");
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
也许您应该返回用于嵌入图像的标记,而不仅仅是图像名称。