4

我现在必须低下头,因为我已经搜索了谷歌几个小时,但仍然不知道我做错了什么。

<DataTemplate DataType="{x:Type local:Controllers}">
    <ListBox>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <WrapPanel>
                    <TextBlock Text="{Binding Path=Port}" />
                </WrapPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</DataTemplate>

要做的是在此列表中显示任意数量的控制器对象。“Controllers”只是“List<Controller>”的别名。“端口”是每个“控制器”对象的属性,但当然不会出现在列表中。项目被正确地添加到列表所基于的集合中(集合实际上存储为显示此对象集合的 ContentControl 的 Content 属性),但集合本身中没有项目被显示。

起初我认为这可能是一个更新问题——集合在其初始的空状态下正确显示,但事实并非如此;如果我从已经填充的集合开始,我仍然没有得到任何项目。

帮帮我,欧比万。:(

4

1 回答 1

3

你需要绑定一些东西到ListBox. that something is just {Binding},它指的是在运行时传入的DataTemplates的实例。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>
于 2013-02-15T22:37:31.313 回答