删除当前单击的列表框项目 (ObservableCollcetion)
Remove current clicked ListBox item (ObservableCollcetion)
我有一个 ListBox
,其中包含一个 ObservableCollection
和一个相应的 Button
。
我想在相应的按钮点击时删除 ListBoxItem
。
我添加了以下 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
中删除所选项目?
这应该可以解决问题:
private void btnClear_Click(object sender, RoutedEventArgs e)
{
DailySessions.Items.RemoveAt(DailySessions.Items.IndexOf(DailySessions.SelectedItem));
}
您可以投射所点击 Button
的 DataContext
:
private void btnClear_Click(object sender, RoutedEventArgs e)
{
Button clickedButton = (Button)sender;
DailySessions.Items.Remove(clickedButton.DataContext as DailySession);
}
我有一个 ListBox
,其中包含一个 ObservableCollection
和一个相应的 Button
。
我想在相应的按钮点击时删除 ListBoxItem
。
我添加了以下 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
中删除所选项目?
这应该可以解决问题:
private void btnClear_Click(object sender, RoutedEventArgs e)
{
DailySessions.Items.RemoveAt(DailySessions.Items.IndexOf(DailySessions.SelectedItem));
}
您可以投射所点击 Button
的 DataContext
:
private void btnClear_Click(object sender, RoutedEventArgs e)
{
Button clickedButton = (Button)sender;
DailySessions.Items.Remove(clickedButton.DataContext as DailySession);
}