C# 删除当前单击的列表框项(ObservableConnection)

C# 删除当前单击的列表框项(ObservableConnection),c#,wpf,listbox,C#,Wpf,Listbox,我有一个列表框,其中包含一个ObservableCollection和一个相应的按钮。 我想删除相应按钮单击时的ListBoxItem 我添加了以下c代码: public ObservableCollection<DailySession> dailySession; 我无法获取我单击的ListBoxItem的索引 有没有其他方法可以从列表框中删除所选项目?这应该可以做到: private void btnClear_Click(object sender, RoutedEvent

我有一个列表框,其中包含一个ObservableCollection和一个相应的按钮。 我想删除相应按钮单击时的ListBoxItem

我添加了以下c代码:

public ObservableCollection<DailySession> dailySession;
我无法获取我单击的ListBoxItem的索引


有没有其他方法可以从列表框中删除所选项目?

这应该可以做到:

private void btnClear_Click(object sender, RoutedEventArgs e)
{    
  DailySessions.Items.RemoveAt(DailySessions.Items.IndexOf(DailySessions.SelectedItem));
}
您可以强制转换单击按钮的DataContext:

为了工作,必须从代码中删除DailySession。我用这个代替了DailySessions.Items.RemoveclickedButton.DataContextDailySessions返回ObservableCollection时需要强制转换。不起作用,DailySessions.SelectedItem返回null。
 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

    }
private void btnClear_Click(object sender, RoutedEventArgs e)
{    
  DailySessions.Items.RemoveAt(DailySessions.Items.IndexOf(DailySessions.SelectedItem));
}
private void btnClear_Click(object sender, RoutedEventArgs e)
{
    Button clickedButton = (Button)sender;
    DailySessions.Items.Remove(clickedButton.DataContext as DailySession);
}