2009-04-07 37 views
1

我正在使用棱鏡並且有一個TabControl區域。我有一個TabControl.ItemTemplate上的DataTemplate設置爲類型IView的接口。 IView有一個標題和描述字符串。當我使用我的IView調用RegisterViewWithRegion時,該選項卡被添加,但沒有描述顯示在標題上。我可以不綁定到接口的屬性還是我錯過了其他東西?使用棱鏡顯示選項卡標題

manager.AddToRegion(「ContentZone」,new 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" /> 

編輯:我找到了解決辦法,但我並不覺得所有的偉大。出於某種原因,無論我做了什麼,DataTemplate的DataContext總是返回null,我嘗試了DataTempalteSelector,但是該項本身也是null。我嘗試改爲基礎抽象類,而不是那樣工作。因此,這是我結束了對綁定本身:

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

您不是在使用TabItem.HeaderTemplate嗎? – 2012-04-11 17:11:08

+0

哇,不知道,長久以來,從棱鏡移開,它還保持着甚麼? – dariusriggins 2012-04-11 22:02:30

回答

0

你不能用一個接口DataTemplate關聯。它必須直接與類型相關聯。如果您想通過界面進行關聯,則可以考慮實施DataTemplateSelector,檢查項目是否實施IView並相應地返回DataTemplate

+0

所以我給了一個鏡頭,但SelectTemplate方法返回的項目總是爲空。我註冊如下。斷點命中,但項目爲空。 dariusriggins 2009-04-07 18:38:02