将true/false更改为图像

Lui*_*uis 2 c# wpf datagrid

我在数据网格中有一个内容为True/false的列,如何根据文本将此true/false(布尔值)更改为图像?

我正在使用c#wpf.

编辑:

<dg:DataGridTemplateColumn  MinWidth="70" Header=" Is Done2">
    <dg:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Name="imgIsDone" Source="../Resources/Activo.png"/>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding Path=IsDone}" Value="False">
                    <Setter TargetName="imgIsDone" Property="Source" Value="../Resources/Inactivo.png"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </dg:DataGridTemplateColumn.CellTemplate>
</dg:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

ben*_*rce 13

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在您的xaml中,作为资源:

<local:BoolToImage TrueImage="{StaticResource Image}" FalseImage="{StaticResource FalseImage}" x:Key="BoolImageConverter"/>
Run Code Online (Sandbox Code Playgroud)

然后在你的绑定:

ImageSource={Binding Path=BoolProp,Converter={StaticResource BoolImageConverter}}"


Qua*_*ter 11

使用DataGridTemplateColumn为包含Image的列提供DataTemplate,并使用值转换器或数据触发器根据列的值设置图像源.以下是使用数据触发器的示例:

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image Name="MyImage" Source="TrueImage.png"/>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding BoolColumn}" Value="False">
                    <Setter TargetName="MyImage" Property="Source" Value="FalseImage.png"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)