在 DataListView 中设置图像(ObjectListView 的一部分)
Setting images in DataListView (Part of ObjectListView)
我刚刚开始使用 DataListView(ObjectListView 包的一部分)。我将数据表绑定到 DataListView,但现在我想根据特定条件将图像添加到数据中。我花了几个小时阅读帮助文件 (http://objectlistview.sourceforge.net/cs/recipes.html#how-do-i-bind-a-dataset-to-an-objectlistview),但它们似乎都引用了 'ObjectListView' 而不是 'DataListView'。
我已经阅读了很多关于 imagegetter 的内容,但我认为当您绑定到数据表时这并不适用(如果是,如何?)。
我是否应该遍历每一行并根据条件手动添加图像?如果是这样,你能帮我开始吗?
这是他们网页上的一个例子。查看他们如何根据数据在第一列(和其他列)中显示图像?我想用 DataListView 做到这一点。
提前致谢。我正在使用 VB.net
现在我有了这个:
Dim myImages = New ImageList
myImages.Images.Add(My.Resources.important_High_icon)
myImages.Images.Add(My.Resources.important_Med_icon)
myImages.Images.Add(My.Resources.important_Low_icon)
myDataListView.SmallImageList = myImages
myDataListView.OwnerDraw = True
Image_Column.ImageGetter = Function(x As Object) As Integer
Select Case (Important_Column.value)
Case "High"
Return 0
Case "Medium"
Return 1
Case "Low"
Return 2
End Select
End Function
如何引用该行中的另一列作为逻辑依据?在上面的示例中,我试图引用 'Important_Column'
中的值
首先,将列表的 OwnerDraw
属性 设置为 true:
yourList.OwnerDraw = True
然后 link 你的列表到 ImageList:
myImages = New ImageList
myImages.Images.Add(My.Resources.image_1)
myImages.Images.Add(My.Resources.image_2)
yourList.SmallImageList = yourImageList
然后您应该在您的 ObjectListView 列上设置图像 getter 委托,例如:
myOlvColumn.ImageGetter =
Function(x As Object) As Integer
Dim casted As yourColumnRealType = DirectCast(x, yourColumnRealType)
Return If(yourCondition, 0, 1)
End Function
委托函数 return 是图像列表的索引,或者,由于 ObjectListView 是 owner-drawn,委托可以 return 图像。
我刚刚开始使用 DataListView(ObjectListView 包的一部分)。我将数据表绑定到 DataListView,但现在我想根据特定条件将图像添加到数据中。我花了几个小时阅读帮助文件 (http://objectlistview.sourceforge.net/cs/recipes.html#how-do-i-bind-a-dataset-to-an-objectlistview),但它们似乎都引用了 'ObjectListView' 而不是 'DataListView'。
我已经阅读了很多关于 imagegetter 的内容,但我认为当您绑定到数据表时这并不适用(如果是,如何?)。
我是否应该遍历每一行并根据条件手动添加图像?如果是这样,你能帮我开始吗?
这是他们网页上的一个例子。查看他们如何根据数据在第一列(和其他列)中显示图像?我想用 DataListView 做到这一点。
提前致谢。我正在使用 VB.net
现在我有了这个:
Dim myImages = New ImageList
myImages.Images.Add(My.Resources.important_High_icon)
myImages.Images.Add(My.Resources.important_Med_icon)
myImages.Images.Add(My.Resources.important_Low_icon)
myDataListView.SmallImageList = myImages
myDataListView.OwnerDraw = True
Image_Column.ImageGetter = Function(x As Object) As Integer
Select Case (Important_Column.value)
Case "High"
Return 0
Case "Medium"
Return 1
Case "Low"
Return 2
End Select
End Function
如何引用该行中的另一列作为逻辑依据?在上面的示例中,我试图引用 'Important_Column'
中的值首先,将列表的 OwnerDraw
属性 设置为 true:
yourList.OwnerDraw = True
然后 link 你的列表到 ImageList:
myImages = New ImageList
myImages.Images.Add(My.Resources.image_1)
myImages.Images.Add(My.Resources.image_2)
yourList.SmallImageList = yourImageList
然后您应该在您的 ObjectListView 列上设置图像 getter 委托,例如:
myOlvColumn.ImageGetter =
Function(x As Object) As Integer
Dim casted As yourColumnRealType = DirectCast(x, yourColumnRealType)
Return If(yourCondition, 0, 1)
End Function
委托函数 return 是图像列表的索引,或者,由于 ObjectListView 是 owner-drawn,委托可以 return 图像。