C# 将泛型类型转换为listbox控件

C# 将泛型类型转换为listbox控件,c#,silverlight,silverlight-4.0,C#,Silverlight,Silverlight 4.0,我使用的是silverlight framework 4:我试图将我的项目列在一个通用列表中,并将其发送给listbox控件:但接收到的唯一数据是类名本身 lsBox=>listbox控件 lsTags=>泛型类型 我的问题是:如何将常规列表中的项目添加到listbox控件 我的代码是: lsBox.ItemsSource = lsTags; ListBox(以及大多数其他控件)显示用户类型的默认行为是调用ToString()方法。其默认行为是显示类名 您应该做什么取决于您想要显示什么,但是

我使用的是silverlight framework 4:我试图将我的项目列在一个通用列表中,并将其发送给listbox控件:但接收到的唯一数据是类名本身

lsBox=>listbox控件 lsTags=>泛型类型

我的问题是:如何将常规列表中的项目添加到listbox控件

我的代码是:

 lsBox.ItemsSource = lsTags;

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

您应该做什么取决于您想要显示什么,但是如果是显示
Name
属性的值这样简单的事情,只需设置:


您可以使用
DisplayMemberPath
SelectedValuePath
控件的属性告诉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>


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

但是,我正在读取一个.xml文件的值:通用变量lsTags包含数据,我将只将数据绑定到一个列表框?是的,将数据直接绑定到列表框。显示数据的确切方式取决于IsTags的类型以及您希望显示的内容。是。。我试着这么做。但结果是:Clipboard.Tag(我的项目名称)标记.xml文件的其他类的名称。lsTags为类型列表+1至反向粗糙-1。请大家给新手一个机会。
<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>