Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Группировка данных с помощью TabControl


Автор: xakpc 21.6.2011, 15:13
Здравствуйте.
Возможно ли как нибудь сгруппировать данные с помощью TabControl в XAML?
Пока у меня есть только идея в codebehind — создание "сгруппированного" списка и подсовывание его в DataTemplate

Автор: Kefir 21.6.2011, 18:48
Совершенно непонятно о какой группировке идет речь. Поясните пожалуйста.

Автор: xakpc 22.6.2011, 12:26
Цитата(Kefir @ 21.6.2011,  18:48)
Совершенно непонятно о какой группировке идет речь. Поясните пожалуйста.

Имеется коллекция объектов класса:
Код

class Property
{
 string Name;
 object Value;
 string Category;
}



Необходимо подсунуть эту коллекцию в TabControl такого вида

   
Код

 <TabControl>
            <TabControl.ItemTemplate>
                <DataTemplate>
                    <TabItem Header="{Binding Path=Category}">
                        <TextBlock Text="{Binding Path=Category}"/>
                    </TabItem>
                </DataTemplate>
            </TabControl.ItemTemplate>

            <TabControl.ContentTemplate>
                <DataTemplate>
                   <ListBox Name="lstProducts" HorizontalContentAlignment="Stretch">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Border>
                            <Grid >
                                <Grid.ColumnDefinitions>
                                   ...
                                </Grid.ColumnDefinitions>
                                <TextBlock Text="{Binding Path=Number}" Margin="1" Grid.Column="0">.</TextBlock>
                                <TextBlock Text="{Binding Path=Name}" FontWeight="Bold" Margin="1" Grid.Column="1">:</TextBlock>
                                <TextBlock Text="{Binding Path=Value}" Grid.Column="2" Margin="1"></TextBlock>
                            </Grid>

                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
                </DataTemplate>
            </TabControl.ContentTemplate>
        </TabControl>


О группировке я говорю потому что например для ListBox такая возможность предусмотрена компонентом
Код

<CollectionViewSource x:Key="collectionViewSource" Source="{Binding Source={StaticResource RuMapsDS}, XPath=/UsMaps/Map/State}">
            <CollectionViewSource.GroupDescriptions>
                <PropertyGroupDescription PropertyName="@Organization"/>
            </CollectionViewSource.GroupDescriptions>
...


Код

            <ListBox.GroupStyle>
                <GroupStyle HeaderTemplate="{StaticResource categoryTemplate}"/>
            </ListBox.GroupStyle>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)