根据列表框所选项目设置Label对象

本文关键字:项目 设置 Label 对象 选项 列表 | 更新日期: 2023-09-27 18:28:19

我需要将一个Label绑定到两个ListBox。为了做到这一点,我将两个ListBoxSelectionChanged属性设置为相同的函数:

<ListBox Name="ListBox1" SelectionChanged="UpdateSelectedItem" />
<ListBox Name="ListBox2" SelectionChanged="UpdateSelectedItem" />
<Label Name="DetailsLabel" DataContent="DefinedElsewhere" />

然而,我很难找到所选项目的实际内容。我已经查看了发送对象和SelectionChangedEventArgs的所有属性,但找不到它。ListBox绑定到对象的ObservableCollection,我希望Label显示上一个所选项目(无论它是从哪个ListBox中选择的)的属性。我怎么找到它?

private void UpdateSelectedItem(object sender, SelectionChangedEventArgs e)
{
     DetailsLabel.Content = ???;
}

根据列表框所选项目设置Label对象

您可以通过以下操作读取所选项目文本:

ListBoxItem item = ((ListBox)sender).SelectedItem as ListBoxItem;
String itemText = (item != null) ? item.Content.ToString() : String.Empty;

您必须将SelectedItem属性强制转换为列表中的对象类型。在这个例子中,我使用了ListBoxItem。