Удалить текущий выбранный элемент ListBox (ObservableCollcetion) - PullRequest
0 голосов
/ 13 мая 2019

У меня есть ListBox, содержащий ObservableCollection и соответствующий Button.Я хочу удалить ListBoxItem при соответствующем нажатии кнопки.

ListBox

Я добавил следующий код c #:

public ObservableCollection<DailySession> dailySession;

...

 while (reader.Read())
        {

            dailySession = new ObservableCollection<DailySession>()
            {
                new DailySession { Name =reader.GetString(0) }

            };

            DailySessions.Items.Add(dailySession);
        }

Чтобы удалить ListBoxItem, я реализовал этот код:

 private void btnClear_Click(object sender, RoutedEventArgs e)
    {
       //DailySessions is the Listbox name, btnClear is button name

        DailySessions.Items.Remove(DailySessions.SelectedItem);// returns null
        //DailySessions.Items.RemoveAt(DailySessions.SelectedIndex);// returns -1

    }

Мне не удалось получить индекс ListBoxItem Я нажал.

Есть ли другой способ удалить выбранный элемент из ListBox?

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Вы можете разыграть DataContext из нажатых Button:

private void btnClear_Click(object sender, RoutedEventArgs e)
{
    Button clickedButton = (Button)sender;
    DailySessions.Items.Remove(clickedButton.DataContext as DailySession);
}
0 голосов
/ 13 мая 2019

Это должно сработать:

private void btnClear_Click(object sender, RoutedEventArgs e)
{    
  DailySessions.Items.RemoveAt(DailySessions.Items.IndexOf(DailySessions.SelectedItem));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...