2012-12-24 55 views
3

我正在將我的應用程序從WP7遷移到WP8,並且發生了一件有趣的事情。我有一個在WP7中完美工作的數據綁定支點。但是,在WP8中,完全相同的代碼,不會加載第一個PivotItem。我已經嘗試了question for WP7中的所有解決方案,但都無效(我想要一個解決方案,而不是一個醜陋的解決方法)。我在構造函數中設置DataContext,集合是可以的,並且一切都應該工作。它只在我在應用程序中滾動時加載樞軸。任何人都有解決辦法?Databound數據透視不加載Windows Phone 8中的第一個PivotItem

回答

5

我不能在WP8上重新制作Pivot的任何數據綁定問題。 WP8的Panorama Databinding存在一個已知問題,但不是Pivot。什麼不適合你?

這裏有一個基本的WP8 Pivot Databinding代碼,對我來說工作得很好。

C#代碼一個DataContext設置爲奶牛的可觀察到的集合:

this.DataContext = new ObservableCollection<Cow>() 
          { 
           new Cow("Foo"), 
           new Cow("Bar"), 
           new Cow("Baz") 
          }; 

public class Cow 
{ 
    public Cow(string name) 
    { 
     Name = name; 
    } 

    public string Name { get; set; } 
} 

XAML代碼使用的DataContext作爲的ItemSource和綁定PivotItem.Header和PivotItem.Content到牛名稱。

<phone:Pivot ItemsSource="{Binding}"> 
    <phone:Pivot.HeaderTemplate> 
     <DataTemplate> 
      <ContentControl Content="{Binding Name}" /> 
     </DataTemplate> 
    </phone:Pivot.HeaderTemplate> 
    <phone:Pivot.ItemTemplate> 
     <DataTemplate> 
      <ContentControl Content="{Binding Name}" /> 
     </DataTemplate> 
    </phone:Pivot.ItemTemplate> 
</phone:Pivot> 

作品就好了......

Pivot with Foo active Pivot with Bar active

+0

這真的很奇怪。基本上,我的設置和你一樣。我的ViewModel有一個Pivots屬性,創建並填充到構造函數中。頁面構造函數將ViewModel設置爲DataContext。所有其他綁定工作很好,除了加載第一個樞軸。無論如何,感謝您的幫助。 – gjulianm

+0

你可以從我的例子開始創建一個獨立的repro,只添加使這個bug可見的東西嗎?這可能是相同的數據綁定錯誤,影響WP8全景,我有一個解決方法... – JustinAngel

+0

我正在嘗試。有趣的是:使用類和基本類型(字符串,int)的列表,它完美地工作。但是,如果清單是由結構...繁榮,第一個支點不加載。這真的很奇怪,並且日誌沒有顯示任何東西。 – gjulianm

0

如果它幫助我有同樣的問題,做了一個醜陋的修復,但它的工作..

pivotTest.SelectedIndex = 1; 
    pivotTest.SelectedIndex = 0; 
0

我在這裏創建了一個這個bug的repro:https://github.com/michaellperry/PivotIsBroken

看起來是因爲內容動畫未被觸發而發生該錯誤。選定的索引實際上並沒有改變。

我採用的醜陋解決方法與DavidN的建議類似,但我必須插入一個虛擬頁面。將SelectedIndex設置爲1只有一個頁面會引發異常。

相關問題