我现在必须垂头丧气,因为我已经在Google上搜了好几个小时,但仍然不知道我做错了什么。
<DataTemplate DataType="{x:Type local:Controllers}">
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Path=Port}" />
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
我尝试做的是在此列表中显示任意数量的控制器对象。 “控制器”只是“List&lt; Controller&gt;”的别名。 “端口”是每个“控制器”对象的属性,但当然不会显示在列表中。正在将项正确添加到列表所基于的集合中(该集合实际上存储为显示此对象集合的ContentControl的Content属性),但集合本身中没有项目正在显示。
我一开始认为它可能是一个更新问题 - 该集合正在以其初始的空状态正确显示,但事实并非如此;如果我从已经填充的集合开始,我仍然没有任何项目。
帮助我,欧比万。 :(
答案 0 :(得分:1)
您需要将某些内容绑定到ListBox
。这个东西只是{Binding}
,它指的是在运行时传入的DataTemplate
s DataType
的实例。
<DataTemplate DataType="{x:Type local:Controllers}">
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Path=Port}" />
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>