7

Silverlight の ItemsControl または Listbox でアイテムをグループ化することは可能ですか? これらのコントロールは DomainDataSource にバインドされます。

または、これを行うサードパーティのコントロールはありますか?

アップデート:

これは、私が作成しようとしている種類の UI です。

代替テキスト

4

4 に答える 4

5

これを行うには、 PagedCollectionViewにネストされたItemsControlsバインドを使用します。

私はデータソースを持っているとしましょう - 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"))

次に、最初にバインドItemsControlしますPagedCollectionView

hisMyItems.ItemsSource = pcv.Groups

は、次のPCVようなネストされた階層を作成します。

-Name
    -Items

whereNameはグループ化されたフィールドの値であり、そのグループ化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 やその他のコントロールも使用でき、テンプレートなどでカスタマイズできます。

于 2011-03-08T17:50:26.327 に答える
0

おそらく、あなたが本当に探しているコントロールは、ツールキットのアコーディオンコントロールです。

ここでアコーディオンの動作のサンプルを参照してください。

実際の外観は、他のコントロールと同じようにスタイル設定できることに注意してください。基本的な機能は、他の方法では単純なリストになるアイテムのカテゴリをグループ化することです。

于 2010-01-07T18:14:08.383 に答える
0

DataGridコントロールはグループ化をサポートします。

Tim Heuerは、データグリッドを使用したグループ化に関する優れたブログを持っています。 リンクテキスト

于 2010-01-07T16:04:55.730 に答える
0

DavidAnsのソリューションを確認してください http://blogs.msdn.com/b/delay/archive/2010/03/17/confessions-of-a-listbox-groupie-using-ivalueconverter-to-create-a-grouped-アイテムのリスト-simply-and-flexibly.aspx

于 2010-09-11T17:20:10.077 に答える