使用所选项目作为参数的 SelectionChanged ListBox 事件调用方法
Calling method on SelectionChanged ListBox event with the selected item as parameter
我正在尝试调用一种方法,该方法根据已选择的 ListBoxItem 用数据填充 table。
// Setting the ListBoxItems
myListBox.ItemsSource = list;
// Calling the method when the ListBox's selection changes
myListBox.SelectionChanged += LbItem_Select;
上面的代码片段无法工作,因为 LbItem_Select
事件处理程序没有将当前选中的项目作为参数获取。
这是事件处理程序:
private void LbItem_Select(object sender, RoutedEventArgs e)
{
var lbItem = sender as ListBoxItem;
lbItemContent = lbitem.Content.ToString();
// fill the table according to the value of lbItemContent
}
我怎样才能做到这一点?
当您处理事件时,发送者是与事件相关的对象。 myListBox.SelectionChanged 是ListBox的一个事件。所以发件人是列表框,而不是项目。试试这个:
private void LbItem_Select(object sender, RoutedEventArgs e)
{
var listBox = sender as ListBox;
// Or use myListBox directly if you have the ListBox available here
var item = listBox.SelectedItem;
// Do whatever with the item
}
我正在尝试调用一种方法,该方法根据已选择的 ListBoxItem 用数据填充 table。
// Setting the ListBoxItems
myListBox.ItemsSource = list;
// Calling the method when the ListBox's selection changes
myListBox.SelectionChanged += LbItem_Select;
上面的代码片段无法工作,因为 LbItem_Select
事件处理程序没有将当前选中的项目作为参数获取。
这是事件处理程序:
private void LbItem_Select(object sender, RoutedEventArgs e)
{
var lbItem = sender as ListBoxItem;
lbItemContent = lbitem.Content.ToString();
// fill the table according to the value of lbItemContent
}
我怎样才能做到这一点?
当您处理事件时,发送者是与事件相关的对象。 myListBox.SelectionChanged 是ListBox的一个事件。所以发件人是列表框,而不是项目。试试这个:
private void LbItem_Select(object sender, RoutedEventArgs e)
{
var listBox = sender as ListBox;
// Or use myListBox directly if you have the ListBox available here
var item = listBox.SelectedItem;
// Do whatever with the item
}