2011-02-03 105 views
5

我想將ObservableCollection數據綁定到WP7中的透視控制點,以便ObservableCollection中的每個對象都變爲透視對象。這是我使用的代碼:在WP7上將數據透視項目數據綁定到ObservableCollection

<controls:Pivot x:Name="MainPivot" ItemsSource="{Binding Persons}"> 
     <controls:Pivot.HeaderTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding FullName}"/> 
      </DataTemplate> 
     </controls:Pivot.HeaderTemplate> 
     <controls:Pivot.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Margin="0,0,0,17" Width="432"> 
        <TextBlock Text="{Binding FirstName}"/> 
        <TextBlock Text="{Binding LastName}"/> 
        <TextBlock Text="{Binding HomeTown}"/> 
       </StackPanel> 
      </DataTemplate> 
     </controls:Pivot.ItemTemplate> 
    </controls:Pivot> 

這工作,並與我的ObservableCollection TRE項目我得到三個PivotItems。但是當所有東西都被加載後,DataTemplate中的綁定就不會被更新。只有當我滾動到下一個PivotItem時,FirstName,LastName和HomeTown纔會被加載。

這是爲什麼?我錯過了什麼?

謝謝

回答

0

在做了一個簡單的測試後,我無法重現此行爲。我在我的ObservableCollection中的兩個項目的等價名字的get塊中放置了一個斷點,我得到了兩個命中。

你是如何檢測到它沒有被綁定的?你看不到「下一個」的pivotitems內容,那麼如何?

+0

嗨喬納斯。這是我無法看到的「第一個」pivotitem的屬性。當我滑到顯示出來的「下一個」,當我滑回去時,「第一」也如此。 – 2011-02-03 09:55:47

+0

你什麼時候創建ObservableCollection,你什麼時候添加項目?我測試我創建並在構造函數之前添加項目之前設置DataContext – 2011-02-03 10:24:42

0

聽起來像加載訂單或通知代碼有問題。

檢查您是否在設置每個FirstName,LastName和HomeTown成員上的屬性時正確地觸發了PropertyChanged事件。

1

我有同樣的問題,但設置解決方法的SelectedIndex = 1不適合我。

我發現了另一種解決方案:當您將項目添加到您的Persons集合中時,您應該首先創建一個臨時元素,並且只有當您填充所有數據時纔會將其添加到您的Persons集合中。

Person tempPers = new Person() { FullName = "Abduvaliev Edem", FirstName = "Edem", LastName = "Abduvaliev", HomeTown = "Sevastopol"}; 
Pesrons.Add(tempPers); 
0

以下是我的操作方法。對我來說,問題在於集合異步更新以響應Web方法調用。

void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    _log.Debug("Page loaded."); 

    var vm = this.GetViewModel<TrendsViewModel>(); 

    if (!vm.IsInitialized) 
    { 
     vm.PivotItems.CollectionChanged += (origin, args) => 
     { 
      this.PivotControl.DataContext = null; 
      this.PivotControl.DataContext = vm; 
     }; 

     vm.Initialize(this); 
    } 
} 

關鍵是連接數據透視項綁定到的集合的觀察者,並在數據更新時給數據上下文一個搖動。

相關問題