Отображение заголовка вкладки с помощью Prism - PullRequest
1 голос
/ 07 апреля 2009

Я использую Prism и у меня есть область, которая является TabControl. У меня есть DataTemplate на TabControl.ItemTemplate для интерфейса типа IView. IView имеет строку заголовка и описания. Когда я вызываю RegisterViewWithRegion с моим IView, вкладка добавляется, но в заголовке не отображается описание. Могу ли я не привязывать свойства интерфейса или мне не хватает чего-то еще?

manager.AddToRegion ("ContentZone", новый PrimaryView ()); // Реализует IView

<TabControl x:Name="ContentZone" cal:RegionManager.RegionName="ContentZone" Grid.Row="1" umn="0">
<TabControl.ItemTemplate>
    <DataTemplate DataType="{x:Type oasis:IView}">
        <DockPanel ToolTip="{Binding Path=Description}">
            <Label Padding="0"
                   Content="{Binding Path=Title}"
                   VerticalAlignment="Center" />

Редактировать: Я нашел решение, хотя я не нахожу это слишком хорошо. По какой-то причине DataContext из DataTemplate всегда возвращался как нулевой, независимо от того, что я делал, я пробовал DataTempalteSelector, но сам элемент также был нулевым. Вместо этого я попытался перейти на базовый абстрактный класс, и это тоже не сработало. Вот что я закончил для самой привязки:

{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ContentControl}}, Path=DataContext.Title}

1 Ответ

0 голосов
/ 07 апреля 2009

Вы не можете связать DataTemplate с интерфейсом. Он должен быть напрямую связан с типом. Если вы хотите связать через интерфейс, вы можете рассмотреть реализацию DataTemplateSelector, которая проверяет, реализует ли элемент IView и возвращает DataTemplate соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...