如何以编程方式获取列表框中绑定项的字符串?

How to get the string of binded item in a listbox programmatically?

我有一个带有数据模板的列表框项目,它具有如下内容:

  <TextBlock Text="{Binding Name}"/>
  <TextBlock Text="{Binding Age}"/>

我用它来为绑定添加值。

ListBox1.Items.Add(New User() With {.Name= "John Crooks", .Age = 42})

例如,是否可以通过编程方式检索这些数据。我正在尝试以编程方式获取所选项目的年龄。我该怎么做?

您可以将 SelectedItem 属性 的值转换为您的数据项类型,然后访问其属性。

在 C# 中:

if (ListBox1.SelectedItem != null)
{
    var myItem = (MyItem)ListBox1.SelectedItem;
    var name = myItem.Name;
}

在VB中应该是这样的:

Dim myItem As MyItem = CType(ListBox1.SelectedItem, MyItem)
Dim name As String = myItem.Name

您需要在XAML中声明:

xmlns:localData="YourAssembly.dll"
d:DataContext="{d:DesignInstance Type=localData:YourClass}"