-3000 ila 10000 arasında bir sayı sütununa sahip bir nesne listesi görünümüm var. 2000'den daha az bir şey için bir filtre uygulamanız gerekiyor (bu, tüm negatif sayıları da içermelidir)). Örnekleri okudum ve yardım ettim (http://objectlistview.sourceforge.net/cs/filtering.html#filtering-label) ama C# 'de ve VB.net ile çalışıyorum. Normalde dönüşümü anlayabilirim ama bu beni güldürüyor.VB.net Nesne listesi görüntüleme sütununa göre filtreleme aralığı
Temsilci yerine bir işlev kullanan başka bir kod parçam var (bir görüntüyü uygularken) ancak bu filtreleme örneğinde çalışamadım. Ben de bir regex kullanmayı denedim ama sadece numaraları ile uğraştığım için bunu regex olmadan yapmam gerektiğini hissediyorum.
Birisi bana bunun üzerinden geçmeme yardımcı olmak için VB.net'te numara aralıklarına sahip özel bir filtreleme örneği gösterebilir mi?
Teşekkürler! İşte
ben birlikte attı bir örnek:sen, sadece (30 yükseklikte altında ikisi) Mary Swanson ve Jiminy Cricket göstermelidir tıklayın "Filtre Uygula" . İşte
Ben OLVPrivate Sub Button3_Click_1(sender As Object, e As EventArgs) Handles Button3.Click
Dim LvLst As New List(Of Person)
Dim LvItm As New Person With {.FirstName = "Joe",
.LastName = "Blow",
.Glasses = "Y",
.Height = "75",
.HeightBar = "75"}
LvLst.Add(LvItm)
Dim LvItm2 As New Person With {.FirstName = "Mary",
.LastName = "Swanson",
.Glasses = "N",
.Height = "25",
.HeightBar = "25"}
LvLst.Add(LvItm2)
Dim LvItm3 As New Person With {.FirstName = "Mike",
.LastName = "Tyson",
.Glasses = "N",
.Height = "125",
.HeightBar = "125"}
LvLst.Add(LvItm3)
Dim LvItm4 As New Person With {.FirstName = "Jiminy",
.LastName = "Cricket",
.Glasses = "Y",
.Height = "-9",
.HeightBar = "-9"}
LvLst.Add(LvItm4)
ObjectListView3.View = View.Details
Dim myImages = New ImageList
myImages.Images.Add(My.Resources.Hipster_Glasses_icon)
myImages.Images.Add(My.Resources.Button_important_icon)
ObjectListView3.SmallImageList = myImages
ObjectListView3.UseCellFormatEvents = True
ObjectListView3.OwnerDraw = True
Col_Glasses.ImageGetter = Function(x As Object) As Integer
Dim casted As Person = DirectCast(x, Person)
If casted.Glasses = "Y" Then
Return 0
Else
Return 1
End If
End Function
Col_Height.Renderer = New BarRenderer(0, 100, Pens.Black, Brushes.Gold)
'Set no data message
ObjectListView3.EmptyListMsg = "No Data Found"
ObjectListView3.EmptyListMsgFont = New Font("Tahoma", 18)
'Allows you to type and search inside the olv
ObjectListView3.IsSearchOnSortColumn = True
ObjectListView3.SetObjects(LvLst)
End Sub
oluşturmak için kullanılan kod Ve bu
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
ObjectListView3.ModelFilter = Function(x As Object) As ModelFilter
Dim casted As Person = DirectCast(x, Person)
If casted.Height <= CInt(HeightFilter.Text) Then
Return x
End If
End Function
End Sub
Kişiye
Public Class Person
Public Property FirstName As String
Public Property LastName As String
Public Property Glasses As String
Public Property Height As Integer
Public Property HeightBar As Integer
End Class
Class yardıma ihtiyaç filtre düğmesine arkasında kodudur
Hata, IModelFilter öğesinin temsilci türü olmadığını söylüyor. İşlevden ne döneceğimi bilmiyorum? Gözlük sütunu için kullandığım görüntü aygıtını görüyor musunuz? Aynı yaklaşımı kullanmaya çalışıyordum ama bir IModelFilter için hiç kullanmadım. Yardım için teşekkürler!
Örnek C# kodu oldukça basit görünüyor ve kolayca vb.net'e çevrilmelidir. Hangi kodu denediğini gösterebilir misin? –
Convert C# to vb.net http://www.developerfusion.com/tools/convert/csharp-to-vb/ – Dejan
hey @ChaseRocker Soruyu istediğiniz gibi güncelledim. Herhangi bir yardım çok takdir edilecektir –