布尔转换器打印一幅图像,只需打印图像名c#

布尔转换器打印一幅图像,只需打印图像名c#,c#,wpf,datagrid,boolean,ivalueconverter,C#,Wpf,Datagrid,Boolean,Ivalueconverter,我有一个包含布尔值的DataGridTextColumn,这些布尔值在列上返回TRUE或FALSE 我想用两个图像来代替这个,一个为真,一个为假 这是数据网格: <DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=ResultatCollectionGrande}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtu

我有一个包含布尔值的DataGridTextColumn,这些布尔值在列上返回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>
转换器工作,它改变了我的DataGridTextColumn显示的内容。现在它显示“booleanTrue.png”表示TRUE和“booleanFalse.png”,但不显示图像

我如何显示它们,在我的数据网格中打印这些图像我缺少什么


提前感谢您的帮助。

也许您应该返回嵌入图像的标记,而不仅仅是图像名称。

您将要求模板列在此列中显示图像,并仅在此模板列中应用绑定,而不是使用DataGridTextColumn。让我给你带路

您的数据网格应该是这样的

<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>

图像位于解决方案的根上,所以在前面添加一个``是什么意思?不,我的意思是返回一个字符串,如:在DataGrid.Columns上可以返回这样的字符串吗?我试试看。编辑似乎是不可能的,它只需要DataGrid复选框/组合框/超链接/模板/文本也许其中一个可以让我做我想做的事?DataGridTemplateColumn似乎是解决方案,我尝试了。现在它可以工作了。我就是这样做的:
转换器不一定要返回URI。它也可以是字符串,WPFs内置类型转换为ImageSource类型(图像控件的
Source
属性的类型)对这两种类型都有效。此外,当图像存储为程序集资源时(我将从OP中假定),必须返回有效的。另一种选择是直接创建并返回BitmapImage或BitmapFrame实例。
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();
    }
}
<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();
        }