powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / несколько DataTemplate для TabControl
2 сообщений из 2, страница 1 из 1
несколько DataTemplate для TabControl
    #38684277
Фотография _Novichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

На TabControl биндится коллекция с элементами разного типа
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<TabControl x:Name="TabControl" Height="90"  
            Style="{StaticResource TabControlStyle}"
            ItemsSource="{Binding Navigators}">    
</TabControl>

<Style x:Key="TabControlStyle" TargetType="{x:Type TabControl}">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    ...
    <Setter Property="ItemContainerStyle" Value="{StaticResource TabItemStyle}"/>
</Style>

<Style x:Key="TabItemStyle" TargetType="{x:Type TabItem}">
    <Style.Resources>
        <DataTemplate DataType="{x:Type vms:ProjectsNavigatorViewModel}">
            <TextBlock Text="{Binding RootNodeHeader}"/>
        </DataTemplate>
        
        <DataTemplate DataType="{x:Type vms:PersonsNavigatorViewModel}">
            <TextBlock Text="{Binding RootNodeHeader}"/>
        </DataTemplate>
    </Style.Resources>
</Style>



В зависимости от типа элемента, по разному представляется содержимое элемента TabItem.
В стиле для TabItem были определены темплейты разных типов, но они работают только для свойства Header элемента TabItem.
Пытался с помощью DataTrigger определить тип привязанного объекта и установить нужный темплейт, но при этом почему-то ничего не происходит:
Код: xml
1.
2.
3.
4.
5.
6.
<Style.Triggers>
    <DataTrigger Binding="{Binding Path=Type}" Value="vms:ProjectsNavigatorViewModel">
        <Setter  Property="HeaderTemplate" Value="{StaticResource TabItemProjectsHeaderTemplate}"/>
        <Setter Property="ContentTemplate" Value="{StaticResource TabItemProjectsContentTemplate}"/>
    </DataTrigger>
</Style.Triggers>



Если объявление дататриггера изменить на следующее
Код: xml
1.
<DataTrigger Binding="{Binding Path=Type}" Value="{x:Type vms:ProjectsNavigatorViewModel}">


то во время выполнения выдает ошибку о том, что должны быть установлены и Binding, и Value.

Вопрос: как отстилизировать содержимое вкладки?
...
Рейтинг: 0 / 0
несколько DataTemplate для TabControl
    #38684313
DefendeRRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может задать ItemTemplate, в котором указать
Код: xml
1.
<ContentPresenter x:Name="contentPresenter" Content="{Binding }" />



И пусть ContentPresenter уже рисуется на основе DataTemplate
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / несколько DataTemplate для TabControl
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]