none
Eliminar elemento de una colección ligada a un listbox RRS feed

  • Pregunta

  • Hola a todos:

     

    Tengo una colección ligada a una lista del siguiente modo:

     

    <ListView ItemsSource="{Binding}" 
                          IsSynchronizedWithCurrentItem="True" 
                          MouseDoubleClick="listView1_MouseDoubleClick" 
                          MouseRightButtonDown="listView1_MouseRightButtonDown"
                          Name="listView1" 
                          Background="Black" 
                          Foreground="White" 
                          SelectionChanged="listView1_SelectionChanged" 
                          Grid.ColumnSpan="2" 
                          Margin="0,-16,-18,0">


    y quería eliminar la línea seleccionada de la colección al pulsar el botón derecho.

    He hecho lo siguiente pero, evidentemente, no me borra el elemento de la colección.

            private void listView1_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
            {
                // Obtener la vista de rondas
                ICollectionView vista = CollectionViewSource.GetDefaultView(rondas);
    
                Ronda ronda = (Ronda)vista.CurrentItem;
                int tipoEvento = ronda.TipoEvento;
    
                if (ronda.Estado == Ronda.EstadosRonda.REPOSO)
                {
                    ronda = null;
                }
                
            }
    

    ¿cómo podría hacerse?

     

    Muchas gracias

     


    Atentamente José Luis Torre
    miércoles, 1 de febrero de 2012 17:41

Respuestas

  • Hola José Luis

    Intenta con esto:

    ObservableCollection<Rondas> dataList;
    
    dataList = (ObservableCollection<Rondas>)listView1.ItemsSource;
    
    dataList.RemoveAt(listView1.SelectedIndex);
    
    Un saludo


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Propuesto como respuesta victor_23 lunes, 20 de febrero de 2012 6:17
    • Marcado como respuesta José Luis Torre martes, 21 de febrero de 2012 19:28
    sábado, 4 de febrero de 2012 15:16

Todas las respuestas

  • Observo que no estás realmente borrando nada. Cuando dices "ronda=null", simplemente estas quitando la referencia que "ronda" tiene hacia el elemento actual.

    Lo que debes hacer es quitar de la colección "Rondas" el elemento "Ronda".


    Blog: Silverideas
    jueves, 2 de febrero de 2012 16:01
  • Hola José Luis

    Intenta con esto:

    ObservableCollection<Rondas> dataList;
    
    dataList = (ObservableCollection<Rondas>)listView1.ItemsSource;
    
    dataList.RemoveAt(listView1.SelectedIndex);
    
    Un saludo


    Antonio Lobo
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi blog
    • Propuesto como respuesta victor_23 lunes, 20 de febrero de 2012 6:17
    • Marcado como respuesta José Luis Torre martes, 21 de febrero de 2012 19:28
    sábado, 4 de febrero de 2012 15:16