WPF中继器喜欢项目控制

时间:2018-08-11 01:51:05

标签: c# wpf xaml itemscontrol

我有一个wpf应用程序,我想要中继器一样的功能。我指的是以下帖子Wpf repeater like control,所以我有类似ItemsControl的项目源的列表。我要显示的内容如下;

  

父级内容1
        子内容1。

     

父级Content2
          子内容2。

     

等等。

因此,父级内容1和父级内容2是Data对象内部的名称属性,而子级content1和子级Content2就像数据对象内部的value属性。

这是我创建的示例应用程序,但出现了xaml解析异常,内容为“向类型'System.Windows.Controls.UIElementCollection类型的集合添加值”引发了异常”。这只是部分xaml。我是项目控件的新手。请帮忙。

'header' => array("Content-Type: application/x-www-form-urlencoded",
                  "Cookie: session_hash=123456789")

Mainwindow.cs

 <ItemsControl
                ItemsSource="{Binding Path=AllItems}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Label Content="{Binding names}"></Label>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" Margin="10">
                        <TextBlock
                            Text="{Binding}"></TextBlock>
                        </StackPanel>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>

1 个答案:

答案 0 :(得分:1)

无需设置ItemsPanelTemplate,因为默认情况下它使用StackPanel。这里的问题是因为您还在TextBlock内添加了ItemsPanelTemplate。删除它,然后在ItemTemplate中添加正确的数据格式。

<ItemsControl
    ItemsSource="{Binding Path=AllItems}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding names}"></TextBlock>
                <TextBlock Text="{Binding value}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>