1
我有一個名爲「DoYouKnow」的枚舉,其中包含Yes
,No
和Unknown
。如何根據DisplayMemberBinding使XAML GridView顯示多個圖像之一?
我在GridView中有一列,根據我使用DisplayMemberBinding
附加的DoYouKnow值,它在當前每行中顯示「是」,「否」或「未知」。
而不是顯示我想讓此列顯示勾號,交叉或問號。
到目前爲止,我得到這個工作最接近的是繪製一些圖片,並感嘆如果我不需要使用WPF,我可以在代碼中做到這一點,而無需打擾所有你很好的人。
任何想法接下來我應該做什麼?
編輯:基於裏德的建議,我已經到了這個階段與我的XAML(大部分細節已被刪除,道歉,如果有什麼明顯的缺失,隨意問,爲我所知道的重要的東西失蹤):
<UserControl.Resources>
<l:KnownImageConverter x:Key="imageConverter"/>
</UserControl.Resources>
<Grid>
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="Known State" DisplayMemberBinding="{Binding Path=Known, Converter={StaticResource imageConverter}}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
這是我拼湊起來的的IValueConverter:
<ValueConversion(GetType(Known), GetType(Image))>
Public Class KnownImageConverter
Implements IValueConverter
Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
Select Case CType(value, Known)
Case Known.Yes
Return My.Resources.Yes
Case Known.No
Return My.Resources.No
Case Known.Unknown
Return My.Resources.Unknown
End Select
Return New Image
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
If value Is My.Resources.Yes Then
Return Known.Yes
ElseIf value Is My.Resources.No Then
Return Known.No
ElseIf value Is My.Resources.Unknown Then
Return Known.Unknown
End If
Return Known.Unknown
End Function
End Class
正如我在下面的評論中說,我使用的圖片都在ListView中顯示爲「系統.Drawing.Bitmap「而不是我漂亮的小圖片。
iValueConverter工作,但GridViewColumn顯示「System.Drawing.Bitmap」爲每個條目,而不是實際的圖像。 – Frosty840 2010-09-28 15:56:37
@ Frosty840:沒有看到你的XAML,很難知道完整的問題 - 但是......你顯然正在製作一個'System.Drawing.Bitmap',它是一個GDI位圖,而不是WPF圖像。如果你製作一個WPF圖像,它可能會正常工作。嘗試製作一個BitmapImage,而不是:http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapimage.aspx – 2010-09-28 16:01:23
裏德:感謝您的幫助,我編輯了我的問題,使事情清晰。 – Frosty840 2010-09-28 16:20:02