将ListviewItem的内容发送到TextBlock

时间:2016-01-19 16:40:52

标签: c# xaml win-universal-app

我遇到了影响TextBlock的问题" TxtChoisie"通用应用程序中ListViewItem的内容(Nom / Categorie),这是我的代码:

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;
        }

我在TextBlock中获得的不是内容(如Categorie或Nom) 谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

ClickedItem是一个对象。 Source

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

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

你可以错过这个局部变量:

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

您还应该在投射前检查所点击的项目是否为TextBlock:

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

或C#6语法:

TxtChoisie.Text = myClickedItem?.Text;