The item binding for LongListSelector shouldn't be itself a LongListSelector, it should be either a List or an ObservableCollection. If it's static data, use a List. If it's dynamic data, use an ObservableCollection.
So, it should look similar to this.
public class LongListData
{
public string Name { get; set; }
}
public class PivotData
{
public string Header { get; set; }
public ObservableCollection<LongListData> ListData { get; set; }
}
public MainPage()
{
InitializeComponent();
var list = new ObservableCollection<LongListData>();
var item0 = new LongListData {Name = "Item1"};
var item1 = new LongListData {Name = "Item2"};
var item2 = new LongListData {Name = "Item3"};
list.Add(item0);
list.Add(item1);
list.Add(item2);
var pivotDataList = new List<PivotData>();
var pivotItem1 = new PivotData {Header = "Header1", ListData = list};
var pivotItem2 = new PivotData {Header = "Header2", ListData = list};
pivotDataList.Add(pivotItem1);
pivotDataList.Add(pivotItem2);
ShelfsPivot.ItemsSource = pivotDataList;
}
With your binding looking like this.
<phone:Pivot.ItemTemplate>
<DataTemplate>
<phone:LongListSelector ItemsSource="{Binding ListData}">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel>
<CheckBox />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</DataTemplate>
</phone:Pivot.ItemTemplate>
Hope this helps and happy coding!