actualizar listview

19/10/2006 - 11:24 por Vmrincon | Informe spam
Hola amigos:

Me sucede una cosa extrañísima:

Tengo un listview que deseo ordenar de un modo algo especial. Por
ello poseo dos funciones que me lo ordenan. Hago la siguiente llamada:

Ordenar1(listv)
Ordenar2(listv)
Me.ShowDialog()

Ante esto, resulta que el ShowDialog me muestra el listview sólo
afectado por la segunda ordenación!!!

En cambio si realizo

Ordenar1(listv)
Me.ShowDialog()
Ordenar2(listv)
Me.ShowDialog()

Tras la segunda llamada al ShowDialog, el resultado es perfecto y
los elementos están ordenados conforme a ambas ordenaciones. Intuyo
que dentro del ShowDialog debe ocurrir algun evento o algo que me
actualice el listview y que yo estoy echando en falta en el primer caso
expuesto. ¿Qué puede ser? Les agradecería enormemente su ayuda.

Muchas gracias!!!

Preguntas similare

Leer las respuestas

#6 Vmrincon
19/10/2006 - 13:01 | Informe spam
No mujer no confundes, de hecho agradezco enormemente tu ayuda:

Lo que deseo hacer es que en mi listview, aparezcan primero los
elementos chequeados a true (ordenados por orden alfabetico) y luego
los elementos no chequeados (igualmente ordenador por orden alfabetico)

En el codigo que me mandas siempre se pasara por la zona TRUE del IIf y
por tanto se ordenará por orden alfabético, pero no por si está
chequeado o no...

Un millón de gracias!

Maria Agustina Paz wrote:
bueno, perdon, no domino el tema, asi que es posible que te este perjudicando
en vez de intentar ayudarte.

¿Pero, como es el ordenamiento que quieres, por el texto de una columna y
dentro de cada grupo, si estan chequeados o no?


¿No funcionaria reemplazando la logica anterior por una sola logica como la
siguiente, en un solo compare?

Return IIf(CType(x, ListViewItem).SubItems(col).Text = CType(y,
ListViewItem).SubItems(col).Text, [String].Compare(CType(y,
ListViewItem).Checked.ToString, CType(x, ListViewItem).Checked.ToString),
[String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y,
ListViewItem).SubItems(col).Text))


mil disculpas si en vez de ayudar, confundo


saludos



"Vmrincon" wrote:

> Ahi van...
>
> Ordenar1==>
> Public Function Compare(ByVal x As Object, ByVal y As Object) As
> Integer _
> Implements IComparer.Compare
> Return [String].Compare(CType(x,
> ListViewItem).SubItems(col).Text, CType(y,
> ListViewItem).SubItems(col).Text)
> End Function
>
> Ordenar2==>
> Public Function Compare(ByVal x As Object, ByVal y As Object) As
> Integer _
> Implements IComparer.Compare
> Dim i As Integer
> Return [String].Compare(CType(y,
> ListViewItem).Checked.ToString, CType(x,
> ListViewItem).Checked.ToString)
> End Function
Respuesta Responder a este mensaje
#7 Maria Agustina Paz
19/10/2006 - 13:17 | Informe spam
ah entonces ya esta, es al reves. Esta es la logica

Return IIf(CType(y, ListViewItem).Checked = CType(x, ListViewItem).Checked,
[String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y,
ListViewItem).SubItems(col).Text), [String].Compare(CType(y,
ListViewItem).Checked.ToString, CType(x, ListViewItem).Checked.ToString))


Se usa un solo Compare, aunque la logica de ese compare puede ser todo lo
compleja que quieras






"Vmrincon" wrote:

No mujer no confundes, de hecho agradezco enormemente tu ayuda:

Lo que deseo hacer es que en mi listview, aparezcan primero los
elementos chequeados a true (ordenados por orden alfabetico) y luego
los elementos no chequeados (igualmente ordenador por orden alfabetico)

En el codigo que me mandas siempre se pasara por la zona TRUE del IIf y
por tanto se ordenará por orden alfabético, pero no por si está
chequeado o no...

Un millón de gracias!
Respuesta Responder a este mensaje
#8 Vmrincon
19/10/2006 - 14:53 | Informe spam
Excepcional!!!! Muchas gracias, ya me funciona todo de maravilla

Un saludo

Maria Agustina Paz wrote:
ah entonces ya esta, es al reves. Esta es la logica

Return IIf(CType(y, ListViewItem).Checked = CType(x, ListViewItem).Checked,
[String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y,
ListViewItem).SubItems(col).Text), [String].Compare(CType(y,
ListViewItem).Checked.ToString, CType(x, ListViewItem).Checked.ToString))


Se usa un solo Compare, aunque la logica de ese compare puede ser todo lo
compleja que quieras






"Vmrincon" wrote:

> No mujer no confundes, de hecho agradezco enormemente tu ayuda:
>
> Lo que deseo hacer es que en mi listview, aparezcan primero los
> elementos chequeados a true (ordenados por orden alfabetico) y luego
> los elementos no chequeados (igualmente ordenador por orden alfabetico)
>
> En el codigo que me mandas siempre se pasara por la zona TRUE del IIf y
> por tanto se ordenará por orden alfabético, pero no por si está
> chequeado o no...
>
> Un millón de gracias!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida