Silverlight:Datagrid 类似于 ItemsControl 中的分组

标签 silverlight listbox grouping itemscontrol

是否可以在 Silverlight 的 ItemsControl 或 Listbox 中对项目进行分组?这些控件绑定(bind)到 DomainDataSource。

或者是否有任何第三方控件可以做到这一点?

更新:

这是我正在尝试创建的那种 UI。

alt text

最佳答案

您可以使用嵌套的 ItemsControls 来做到这一点。绑定(bind)到 PagedCollectionView .

假设我有一个数据源 - MyItems - 带字段:Category , SectionOption .我可以创建一个 PagedCollectionView来自 IEnumerable(of MyItems)并告诉它要分组的字段。

Dim original As IEnumerable(Of MyItems) = GetMyItems()

Dim pcv = New PagedCollectionView(original)

pcv.GroupDescriptions.Add(New PropertyGroupDescription("Category"))
pcv.GroupDescriptions.Add(New PropertyGroupDescription("Section"))

然后我绑定(bind)我的第一个ItemsControlPagedCollectionView
hisMyItems.ItemsSource = pcv.Groups
PCV创建一个嵌套层次结构,如:
-Name
    -Items

在哪里 Name是分组字段中的值,Items包含该分组中的行/对象。如果您愿意,我想您也可以在 xaml 中创建 PCV。

xaml 看起来像:
<controls:HeaderedItemsControl x:Name="hisMyItems" Header="{Binding Name}" ItemsSource="{Binding Items}" >
    <controls:HeaderedItemsControl.ItemTemplate>
        <DataTemplate>

            <controls:HeaderedItemsControl Header="{Binding Name}" ItemsSource="{Binding Items}" ItemsPanel="{StaticResource ItemsPanelTemplate1}" >
                <controls:HeaderedItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button Content="{Binding Option}" />
                    </DataTemplate>
                </controls:HeaderedItemsControl.ItemTemplate>
            </controls:HeaderedItemsControl>

        </DataTemplate>
    </controls:HeaderedItemsControl.ItemTemplate>
</controls:HeaderedItemsControl>

我希望这是有道理的。我试图从我的实际应用程序中简化一些事情,但我可能在复制它时犯了一些错误。显然,您也可以使用普通的 ItemsControls 或其他控件,并使用模板等进行自定义。

关于Silverlight:Datagrid 类似于 ItemsControl 中的分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2019942/

相关文章:

wpf - 哪种音频格式适用于Silverlight + WPF?

flash - 使用 Flash 或 Silverlight 进行语音识别

c# - 如何选择较低级别的项目作为列表框的显示成员

grid - 剑道 UI 网格 : possible to allow grouping on specified columns and not on other columns

带分区的 SQL 分组

silverlight - 如何在 Silverlight 4 中使换行文本与按钮内嵌?

silverlight - Windows Phone 中 TextBlock 内的超链接

c# - 刷新列表框项目时出现异常

c# - 列表框内元素的唯一名称

java - Collectors.groupingBy 两列不起作用