Poblemi con una comboBox .. Proprietà SelectedItem

martedì 02 novembre 2004 - 11.21

ares99 Profilo | Newbie

Salve a tutti..
e mi complimento per il sito.. ( unico nel suo genere in lingua italiana )..

beh!.. dopo le sviolinate :)

veniamo al problema.

in una combo box carico degli oggetti ( un array per la precisione ) di tipo "Categoria" ora l'oggetto è fatto in questo modo

Categoria ( due attributi privati ( codice e descrizione ) con il toString overridato con la descrizione )
e le solite proprietà ecco il listato:

Public Class Categoria

Private p_codCategoria As String = ""
Private p_Descrizione As String = ""

Sub New()
End Sub

Sub New(ByVal _idcat As String, ByVal _descrizione As String)
codCategoria = _idcat
Descrizione = _descrizione
End Sub

Public Property codCategoria() As String
Get
Return p_codCategoria
End Get
Set(ByVal Value As String)
p_codCategoria = Value
End Set
End Property

Public Property Descrizione() As String
Get
Return p_Descrizione
End Get
Set(ByVal Value As String)
p_Descrizione = Value
End Set
End Property

Public Overrides Function ToString() As String
Return Me.Descrizione
End Function

End Class

con un array di oggetti di tipo categoria Riempio la mia combobox .. e per l'override del toString .. avro' visibile la descrizione .. ma in realtà nella combo sarà presente l'intero oggetto

.. ORA il mio problema sorge quando .. creando un oggetto di tipo categoria ... lo associo alla proprietà
SelectedItem e cioè

dim c as new Categoria("test","test")

cmb.SelectedItem = c

all'interno della combo l'oggetto c ESISTE .. ( "test","test")

non mi da errore ma NON mi seleziona l'oggetto in questione ..

Dove sbaglio??

Premetto che in Java questo lo facevo!

Un saluto a tutti




ares99 Profilo | Newbie

Scusate la "R" di Problemi..

cmq...

la risposta me la do da solo

cosi ne puo' usufruire tutta la comunità

per fare la selezione dell'oggetto con l'oggetto stesso in una collezione di elementi di una combobox

alla classe base cioè nel mio caso categoria .. bisogna fare l'OVERLOAD e l'OVERRIDE del metodo Equals
perchè facendo due controlli ho notato che non mi eguagliava gli oggetti con le stesse informazioni..!!

quindi basta inserire alla classe base l'OVERLOAD DELL'OPERATORE Equals :

Public Overloads Overrides Function Equals(ByVal _obj As Object) As Boolean

Dim ret As Boolean = False

If TypeOf _obj Is Categoria Then

Dim c As Categoria = CType(_obj, Categoria)
If c.codCategoria.Equals(Me.codCategoria) And c.Descrizione.Equals(Me.Descrizione) Then
ret = True
Else
ret = False
End If

End If

Return ret

End Function


grazie ..

Beh!!

Postate cmq qualche commento.. tanto per farmi capire che leggete!!!

Aaadsadads
scherzo

ciao a tutti!!

Andy Profilo | Senior Member

Bene, se hai risolto meglio cosi..grazie x aver comunicato a tutti la soluzione..

A presto.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5