0

是否可以通過單個PivotItem和多個標題創建Pivot以創建效果,例如有多個PivotItem,但顯示單個項目。支持多個標題項目和單個數據透視項目

所有的透視項目將是相同的類型,並將有一個單一的模板。

其中一個問題是,當我的Pivot只包含一個項目,那麼數據透視表變得不可滾動(無法滑動)。

我需要這樣的行爲來重用創建的視圖並減少內存消耗。

我已經嘗試改變樞軸風格,但沒有運氣。也許任何人都創造了類似的東西,可以幫助我。

+1

'SelectionChanged'事件將您的內容從一個'PivotItem'中移除並將其添加到另一個。這是否滿足您的要求? – Abhishek

+0

其實它工作。我使用Caliburn.Micro,所以我需要創建一些黑客,但它的工作。您唯一需要確定的是始終清除不可見項目的內容。把你的評論放在一個單獨的答案,所以我可以把它標記爲我的問題的答案。謝謝 –

回答

1

您可以創建多個PivotItem和一個內容。最初你的內容將在第一個PivotItem。然後在SelectionChanged事件中,從以前的PivotItem中刪除您的內容(將其內容設置爲null)並將其添加到當前選定的內容中。

下面是一個例子:

<phone:Pivot x:Name="myPivot" Title="MYPIVOT" SelectionChanged="Pivot_SelectionChanged"> 
    <phone:PivotItem x:Name="one" Header="one"> 
     <Grid x:Name="content"> 
      <!-- Place content here --> 
     </Grid> 
    </phone:PivotItem> 
    <phone:PivotItem x:Name="two" Header="two" /> 
    <phone:PivotItem x:Name="three" Header="three" /> 
</phone:Pivot> 

,這裏是後面的代碼:我想你可以有多個`PivotItem`s,並把你的內容中的第一項,並處理它的

PivotItem selected; 

    public MainPage() 
    { 
     InitializeComponent(); 
     selected = one; 
    } 

    private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     selected.Content = null; 

     switch(myPivot.SelectedIndex) 
     { 
      case 0: 
       one.Content = content; 
       selected = one; 
       break; 
      case 1: 
       two.Content = content; 
       selected = two; 
       break; 
      case 2: 
       three.Content = content; 
       selected = three; 
       break; 
     } 
    }