将列表视图项的内容发送到文本块

本文关键字:文本 列表 视图 | 更新日期: 2023-09-27 18:31:05

我在影响通用应用程序中ListViewItem的内容(nom/categorie)的文本块"TxtChoisie"时遇到问题,这是我的代码:

XAML 代码:

<TextBlock Foreground="#575855" FontSize="18 "  x:Name="TxtChoisie" />
    <ListView x:Name="listme" IsItemClickEnabled="True" SelectionMode="Single" ItemClick="listme_ItemClick">
                                            <ListViewItem>
                                            <TextBlock Text="Nom" HorizontalAlignment="Center" Margin="0"  Foreground="#727271" />
                                            </ListViewItem>
                                            <ListViewItem>
                                                <TextBlock Text="Categorie" HorizontalAlignment="Center" Margin="0"  Foreground="#727271" />
                                            </ListViewItem>
                                        </ListView>

代码隐藏:

 private void listme_ItemClick(object sender, ItemClickEventArgs e)
        {
            var myClickedItem = e.ClickedItem.ToString(); ;
            TxtChoisie.Text = myClickedItem;
        }

我在文本块中得到的不是内容(如分类或命名)感谢您的帮助

将列表视图项的内容发送到文本块

ClickedItem是一个

对象。源

您需要将其转换为TextBlock,然后读取 Text 属性以获取正确的值:

var myClickedItem = ((TextBlock)e.ClickedItem).Text;
TxtChoisie.Text = myClickedItem;

您可能会错过此局部变量:

TxtChoisie.Text = ((TextBlock)e.ClickedItem).Text;

在强制转换之前,还应检查单击的项目是否为文本块:

var myClickedItem = e.ClickedItem as TextBlock;
if (myClickedItem != null)
{
    TxtChoisie.Text = myClickedItem.Text;
}

或在 C# 6 语法中:

TxtChoisie.Text = myClickedItem?.Text;