我有一个用于客户数据的数据网格。我的客户实体有一组暴露的笔记。
我需要一种根据笔记状态在列中显示图像的方法,如果我的任何笔记具有“警告”状态,则显示警告图像,否则显示正常状态图像。
这是可行的吗?
我有一个用于客户数据的数据网格。我的客户实体有一组暴露的笔记。
我需要一种根据笔记状态在列中显示图像的方法,如果我的任何笔记具有“警告”状态,则显示警告图像,否则显示正常状态图像。
这是可行的吗?
我向我的客户实体(正在使用实体框架 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";
}
}
是的,有多种方法可以做到这一点。
如果您有一个客户ViewModel
,那么只需公开一个属性,告诉您该特定客户在他们的笔记集合中是否有警告状态,然后使用它来确定是否显示图像。
另一种选择是使用 aValueConverter
来接收您的笔记集合,然后确定是否显示图像。
我确信还有其他方法,但这些是我脑海中突然出现的方法。