我有一个名为“DoYouKnow”的枚举,其中包含Yes
,No
和Unknown
。
我在GridView中有一个列,根据我使用DisplayMemberBinding
附加的DoYouKnow值,每行显示“是”,“否”或“未知”。
而不是显示我希望此列显示勾号,十字或问号。
到目前为止,我得到的最接近的工作是绘制一些图片,并哀叹如果我不必使用WPF,我可以在代码中执行此操作,而不必打扰所有好人。< / p>
知道接下来应该做什么吗?
编辑:根据里德的建议,我已经使用我的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中显示为“System.Drawing.Bitmap”而不是我漂亮的小图片。