C# 如何获取列表框';点击项目以在其他地方打印?

C# 如何获取列表框';点击项目以在其他地方打印?,c#,xaml,listbox,uwp,C#,Xaml,Listbox,Uwp,我在我的列表框中显示文件的行。我需要抓取用户点击的行,并将其显示为按钮的内容 我是这样做的: void OnItemTapped(object sender, TappedRoutedEventArgs args) { firstElement.Content = itemsControl.SelectedItem.ToString(); } var x = (itemsControl.SelectedItem as ItemsData); firstElement.Content =

我在我的
列表框中显示文件的行。我需要抓取用户点击的行,并将其显示为
按钮
内容

我是这样做的:

void OnItemTapped(object sender, TappedRoutedEventArgs args)
{
    firstElement.Content = itemsControl.SelectedItem.ToString();
}
var x = (itemsControl.SelectedItem as ItemsData);
firstElement.Content = string.Format("{0},{1},{2},{3},{4}" , x.value0 , x.value1 , x.value2 , x.value3 , x.value4);
在xaml中,我有:

<Button Name="firstElement"                
        Content="{Binding}"
        Grid.Row="1" Grid.Column="0"
        Tapped="OnItemTapped" />
问题是,我没有在
ListBox
中正确显示数据,而是得到了
MyNamespace.ItemsData
,这是类的地址,在这里我保留了拆分的
ListBox
行的字符串(我用5个
TextBlocks
-每个单词一个)


您可以使用ElementName绑定:

<Button Name="firstElement"                
        Content="{Binding ElementName=itemsControl, Path=SelectedItem}"
        Grid.Row="1" Grid.Column="0"/>
查看great document以获得绑定属性的广泛列表


*注意:您的列表将处理所有的选择显示和高亮显示,因此至少在这方面,您不需要使用点击事件。

您需要先对模型进行强制转换,然后选择需要显示的属性。像这样:

firstElement.Content = (itemsControl.SelectedItem as ItemsData).value0;
根据您的设计,要获取所有属性,您可以执行以下操作:

void OnItemTapped(object sender, TappedRoutedEventArgs args)
{
    firstElement.Content = itemsControl.SelectedItem.ToString();
}
var x = (itemsControl.SelectedItem as ItemsData);
firstElement.Content = string.Format("{0},{1},{2},{3},{4}" , x.value0 , x.value1 , x.value2 , x.value3 , x.value4);
在C#6中,你可以:

firstElement.Content = string.Format($"{x.value0},{x.value1},{x.value2},{x.value3},{x.value4}");

我使用点击来为用户提供选择和突出显示选项的选项。无论点击哪个选项,都会得到第一个项目的文本吗?@AlexDrenea…OP需要先强制转换到模型才能访问模型属性,否则它会返回
MyNamespace.ItemsData
。当然,但是您提供的代码总是将内容设置为值0,这显然不是他想要的。@paddy…根据您当前的设计,要获得所有属性,我认为唯一的方法是:
var x=(itemsControl.SelectedItem as ItemsData);firstElement.Content=(x.value0+x.value1+x.value2+x.value3+x.value4)不,不要对字符串执行“+”。那太糟糕了。在C#6$“{x.value0}{x.value1}{x.value2}{x.value3}{x.value4}”中使用string.Format、string.Concat或新的内联字符串连接。
firstElement.Content = string.Format($"{x.value0},{x.value1},{x.value2},{x.value3},{x.value4}");