Tengo un cuadro de lista con una simple lista de elementos. En mi página XAML, Tengo el siguientesilverlight/windows phone 7 selectedIndex problemas con el botón dentro de listbox
<ListBox Name="listBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding firstName}"/>
<TextBlock Text="{Binding lastName}"/>
<Button BorderThickness="0" Click="buttonPerson_Click">
<Image Source="delete-icon.png"/>
</Button>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
En mi código subyacente, trato de agarrar el selectedIndex para que pueda quitar el elemento de la colección que se une a mi cuadro de lista.
private void buttonPerson_Click(object sender, RoutedEventArgs e)
{
// If selected index is -1 (no selection) do nothing
if (listBox1.SelectedIndex == -1)
return;
myPersonList.removeAt(listBox1.SelectedIndex);
}
Sin embargo, no importa en qué fila que haga clic en el botón de borrar, selectedIndex es siempre -1
lo que me estoy perdiendo?
gracias de antemano!
esta respuesta ha sido muy útil. ¿Qué pasa si no quiero adjuntar un objeto completo a la etiqueta? ¿Qué pasa si solo quiero adjuntar un número ... digamos ... el Índice seleccionado? – Dave
Evitaría usar el índice (porque es más difícil de hacer y menos flexible a medida que cambia el código). Puede agregar una propiedad de ID (algo único) a su objeto personalizado y vincular la etiqueta a esto. Luego, puede recorrer la lista y eliminar según esta ID, o usar un diccionario con la clave establecida para esa ID. – theChrisKent