2010-05-13 15 views
2

基於storabiligty的原因,我有一個XAML圖中的下列對象:WPF:建立我自己的分頁項目列表....;)?

  • 一個工作區,
  • 包含的工作表,
  • 包含工作項

工作區,工作表的ItemsControl實例。

開始:我在這裏沒有使用標準元素的原因是我要加載/保存 - 他們代表一個商業競爭(實際上是一個交易應用程序的工作區域),我希望那些有儘可能少的「剩餘」因素。我特別不希望被綁定到來自第三方的用戶級別控制,並定期更改dll名稱(在升級期間 - 主要版本在那裏編碼),我不確定我是否不會替換它們,所以我寧願去我自己的「苗條」的對象。

的工作區對應一個窗口(實際上是有WorkAreaWindow,將採取的工作區爲ContentItem

工作表都應該像一個TabControl的工作 - 你可以在它們之間進行切換

怎麼辦。我這樣做?;)

我得到的印象是模板機制我可能會「可視化」工作表作爲頁面在TabControl中,但我幾乎完全失去了如何。任何人都可以啓發我嗎?

這裏是我有多遠了:

我Herarchy是工作區 - >工作表(S) - >工作項目(S)

WORKAREA應作爲一個TabControl,每個工作表一個標籤。

WORKAREA:

 <local:WorkArea x:Name="WorkArea"> 
      <local:WorkArea.Template> 
       <ControlTemplate> 
        <TabControl> 
         <ItemsPresenter /> 
        </TabControl> 
       </ControlTemplate> 
      </local:WorkArea.Template> 

      <local:WorkArea.ItemTemplate> 
       <DataTemplate> 
        <TabItem Header="{Binding Path=Title}"> 
         <ContentPresenter /> 
        </TabItem> 
       </DataTemplate> 
      </local:WorkArea.ItemTemplate> 
      <local:WorkSheet Title="Markets"> 
       <local:WorkTile local:WorkSheet.Row="2" local:WorkSheet.Column="3"> 
        test-11 

我現在可以看到的是一個TabControl,一個標籤。沒有文字,一個標籤中的所有內容。任何人有一個想法如何進一步分裂?

回答

3

您應該仔細閱讀Josh Smith對MVVM here的介紹,並查看演示應用程序源代碼。演示應用程序幾乎正是你所要求的。它基於使用數據模板,可觀察集合綁定和tabcontrol/tabitem的「聯繫人」數據的自定義類動態生成選項卡式界面。一些MVVM和命令的東西可能不是你的東西,但是一部分代碼會做你正在尋找的東西。 XAML根本沒有代碼。您可以簡單地將窗口的數據上下文設置爲您的工作區類實例,該實例將具有可觀察的工作表集合,該工作表集合又具有可觀察的工作項集合和項目/數據模板將完成所有工作。