XAML 从 ListViewItem 获取 Item 文本值

XAML Get Item text value from ListViewItem

我有一个 ListView 控件 项目由两个 TextBlock 组成,如下所示:

        <ListView x:Name="resultsList" ItemsSource="{Binding}" HorizontalAlignment="Left" Height="470" Margin="10,0,0,0" VerticalAlignment="Top" Width="342" FontSize="21.333" BorderThickness="0" ItemClick="RedirectPage" IsItemClickEnabled="True" SelectionMode="None">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="0,-4,0,-4">
                        <StackPanel.Resources>
                            <Style TargetType="TextBlock">
                                <Setter Property="Margin" Value="0,0,0,0" />
                            </Style>
                        </StackPanel.Resources>
                        <TextBlock FontSize="35" Text="{Binding target_name}" />
                        <TextBlock FontSize="15" Text="{Binding type_name}" Opacity="30" Margin="0, 0, 0 ,30"/>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

在后面的代码中,我试图从第一个 TextBlock 元素中获取文本值作为字符串。

string targetName;

targetName = resultsList.SelectedItem.ToString();

我希望该变量 "targetName" 能够从 ListView 项中的第一个 TextBlock 分配文本值 ( Text="{Binding target_name}" )。

如果有人能帮助我,我将不胜感激。

resultsList.SelectedItem 应该是集合中绑定到 ListView 的对象。因此,您可以将其转换为适当的类型,然后访问 target_name 成员

物品来源应为collection。您需要对 collection 进行类型转换以获取值。

class listData { public string target_name { get; set; } public string type_name{ get; set; } }

您可以获得这样的值

  listData ld= (listData)resultsList.SelectedItem;
  string  targetName =ld.target_name;