0

我有一个用于客户数据的数据网格。我的客户实体有一组暴露的笔记。

我需要一种根据笔记状态在列中显示图像的方法,如果我的任何笔记具有“警告”状态,则显示警告图像,否则显示正常状态图像。

这是可行的吗?

4

2 回答 2

0

我向我的客户实体(正在使用实体框架 4)添加了一个只读的 [NotMapped] 属性,它返回了一个布尔值,然后将 DataGridTemplateColumn 中的一个图像绑定到这个并使用值转换器设置源:

实体

[NotMapped]
public bool ShowWarning 
{
    get
    {
        if (this.AuditableNotes != null && this.AuditableNotes.Count(an => an.Warning) > 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

XAML

<DataGridTemplateColumn
            Header="Status">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Image x:Name="MyImage" Source="{Binding ShowWarning, Converter={StaticResource notesStatusConverter}}" Width="25" Height="20"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

值转换器

public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
    if (value != null && (bool)value == true)
    {
        return "/Assets/Images/symbol_error.png";
    }
    else
    {
        return "/Assets/Images/symbol_information.png";
    }

}
于 2013-02-25T21:29:24.130 回答
0

是的,有多种方法可以做到这一点。

如果您有一个客户ViewModel,那么只需公开一个属性,告诉您该特定客户在他们的笔记集合中是否有警告状态,然后使用它来确定是否显示图像。

另一种选择是使用 aValueConverter来接收您的笔记集合,然后确定是否显示图像。

我确信还有其他方法,但这些是我脑海中突然出现的方法。

于 2013-02-25T19:49:08.100 回答