将泛型类型转换为列表框控件

时间:2011-06-04 14:09:03

标签: c# silverlight silverlight-4.0

我正在使用silverlight框架4:我正在尝试将通用列表中的项目列表到列表框控件:但是接收的唯一数据就是类名本身。

lsBox =>列表框控件 lsTags =>泛型

我的问题是:如何将我在通用列表中的项目添加到列表框控件?

我的代码是:

 lsBox.ItemsSource = lsTags;

2 个答案:

答案 0 :(得分:2)

您可以使用DisplayMemberPath控件的SelectedValuePathListBox属性告诉ListBox应为每个项显示哪个属性的值,以及应该使用哪个属性来确定ListBox.SelectedValue属性。或者使用ListBox.ItemTemplate显示如下的复杂数据:

<ListBox x:Name="usersInGroupLBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox IsChecked="{Binding IsActive, Mode=TwoWay}" />
                <TextBlock Text="{Binding User.UserName}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

不要忘记,您只能使用公共属性进行绑定。检查你上课Tag

答案 1 :(得分:0)

显示用户类型的ListBox(以及大多数其他控件)的默认行为是调用ToString()方法。默认行为是显示类名。

你应该做什么取决于你想要显示什么,但如果它像显示Name属性的值那样简单,只需设置DisplayMemberPath property

<ListBox Name="lsBox" DisplayMemberPath="Name" />