C# 将泛型类型转换为listbox控件
我使用的是silverlight framework 4:我试图将我的项目列在一个通用列表中,并将其发送给listbox控件:但接收到的唯一数据是类名本身 lsBox=>listbox控件 lsTags=>泛型类型 我的问题是:如何将常规列表中的项目添加到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()方法。其默认行为是显示类名 您应该做什么取决于您想要显示什么,但是
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>