繁体   English   中英

从多个ListBoxItems获取内容并转换为字符串

[英]Get Content from Multiple ListBoxItems and Cast to String

在Google搜索和搜索stackoverflow上花费了很多时间,但是解决方案不是我想要的,或者我实现的不正确。 别认为这没什么大不了的,所以希望有人可以提供解决方案(有点菜鸟味,所以需要更多的细节让我知道)。

我正在尝试从W8.1通用XAML应用程序中的列表框中获取多个项目的值,以便可以将它们传递给SQLite数据库(我想使用逗号分隔的“ join”语句作为字符串)。 当前,已为各种值手动设置了ListItems的数据源。

在此期间,我正在为字符串的文本设置标签作为测试,使用列表框内的Checkboxes并没有带来任何乐趣,因此我已更改为ListBoxItems,但是我无法获取内容,仅以下内容(选择两个列表项时):

Windows.UI.Xaml.Controls.ListBoxItem,Windows.UI.Xaml.Controls.ListBoxItem

显然,我追求的是内容,应该是“开发人员”和“测试人员”。 这是ListBox的XAML和我当前的代码:

<TextBlock x:Name="lblAreas" HorizontalAlignment="Left" Margin="548,200,0,0" TextWrapping="Wrap" Text="Areas of Interest" VerticalAlignment="Top" RenderTransformOrigin="1.143,1.692" FontSize="13.333" Height="32" Width="336"/>
    <ListBox x:Name="lbAreas" HorizontalAlignment="Left" Height="231" Margin="548,241,0,0" VerticalAlignment="Top" Width="194" SelectionMode="Multiple">
        <ListBoxItem Content="Developer"/>
        <ListBoxItem Content="Tester"/>
    </ListBox>

后面的代码:

var listSelectedItems = lbAreas.SelectedItems.ToList();
string strSelectAreas = string.Join(", ", listSelectedItems);
lblAreas.Text = strSelectAreas;

希望一切都说得通,我尝试了SO和其他地方的各种方法,这些方法看起来应该可行,但还不完全可行! 谢谢你的帮助。

SelectedItems返回一个对象列表,这些对象的字符串表示形式是默认值(这是类的名称)。 实际上,您实际上是每个选定项目的Content属性,如下所示:

string selectAreas = string.Join(", ", lbAreas.SelectedItems.Select(i => i.Content));

lblAreas.Text = selectAreas;

注意:您可能必须将每个项目ListBoxItem转换为ListBoxItem

string selectAreas = string.Join(", ", lbAreas.SelectedItems.Cast<ListBoxItem>()
                                                            .Select(i => i.Content));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM