我有我的客戶數據的datagrid。我的客戶實體收集了一系列筆記。Datagrid DataGridTemplateColumn基於導航支柱
我需要一種基於筆記狀態在列中顯示圖像的方法,如果我的筆記中有任何筆記的狀態爲「警告」,則顯示警告圖像,否則顯示正常狀態圖像。
這是可行的嗎?
我有我的客戶數據的datagrid。我的客戶實體收集了一系列筆記。Datagrid DataGridTemplateColumn基於導航支柱
我需要一種基於筆記狀態在列中顯示圖像的方法,如果我的筆記中有任何筆記的狀態爲「警告」,則顯示警告圖像,否則顯示正常狀態圖像。
這是可行的嗎?
我添加了一個只讀[NotMapped]屬性到我的客戶實體(正在使用實體框架4),該返回的布爾值,然後結合內部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>
ValueConverter
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
,那麼只需公開一個屬性,告訴您特定客戶的筆記集合中是否有警告狀態,然後使用它來確定是否顯示該圖像。
另一個選擇是使用一個ValueConverter
,它接受您的筆記集合,然後確定是否顯示圖像。
我相信還有其他的方法,但這些都是我腦海中浮現出來的。
我可以將一組註釋綁定到DataGridTemplateColumn嗎?我嘗試過,但傳遞給我的ValueConverter的值始終爲空。 – CheGuevarasBeret 2013-02-25 20:24:13
我剛剛檢查過,是的,你可以綁定到一個集合,並將它傳遞給一個ValueConverter。我不知道爲什麼你有問題。如果你繼續遇到問題,那麼就在SO上發起一個新的問題,因爲這不是解決問題的適當位置。另外,請確保對有幫助的答案進行upvote或標記爲答案。 – 2013-02-26 16:02:53