2011-07-25 11 views
1

このエラーが発生する:パノラマコントロールにデータをバインドしようとすると、ItemsSourceを使用する前にItemsコレクションが空である必要があります。以下は私のxamlスニペットです。 MyObjectには、Textプロパティを持っていることをパノラマWP7でのバインディング、ItemsSourceを使用する前にItemsコレクションを空にする必要があります

protected override void OnNavigatedTo(NavigationEventArgs e) { 
string id = NavigationContext.QueryString["id"]; 
ObservableCollection<MyObject> list = DataAccessService.get(id); 
panorama.ItemsSource = list; 
base.OnNavigatedTo(e); 
} 

注:私のコードの後ろに(xaml.cs)で

<controls:Panorama x:Name="panorama"> 
<controls:PanoramaItem > 
    <StackPanel> 
    <TextBlock Text="{Binding Text}"/> 
    </StackPanel> 
</controls:PanoramaItem> 
</controls:Panorama> 

は、私はこのような何かを行います。どんな助けもありがとう。

以下のリンクごとに変更した後も、同じ例外がスローされます。

<controls:Panorama x:Name="panorama"> 
<controls:Panorama.HeaderTemplate> 
    <DataTemplate> 
    <TextBlock Text="{Binding Header}"/> 
    </DataTemplate> 
</controls:Panorama.HeaderTemplate> 
<controls:PanoramaItem > 
    <DataTemplate> 
    <StackPanel> 
    <TextBlock Text="{Binding Text}"/> 
    </StackPanel> 
    </DataTemplate> 
</controls:PanoramaItem> 
</controls:Panorama> 

最後に、以下のユーザーの助けを借りて、この例外を取り除いたソリューションです。

<controls:Panorama x:Name="panorama"> 
<controls:Panorama.HeaderTemplate> 
    <DataTemplate> 
    <TextBlock Text="{Binding Header}"/> 
    </DataTemplate> 
</controls:Panorama.HeaderTemplate> 
<controls:Panorama.ItemTemplate> 
    <DataTemplate> 
    <StackPanel> 
    <TextBlock Text="{Binding Text}"/> 
    </StackPanel> 
    </DataTemplate> 
</controls:Panorama.ItemTemplate> 
</controls:Panorama> 

答えて

2

XAMLでパノラマを構築すると、静的であるかのようにデータバインドされているようになります。

Data Binding Panorama Control WP7 MVVM

お知らせあなたのXAMLは、コントロールのために構築されている方法の違い:

は、データバインディングパノラマ・コントロールのためにこの簡単なチュートリアルを見てみましょう。パノラマコントロールのItemsコレクションを設定する代わりに、データがバインドされた後にコントロールをコントロールするようにHeaderTemplateとItemTemplateを設定する必要があります。

+0

あなたが参照したリンクごとに自分のコードを修正しようとしましたが、それでも動作しません。同じ例外がスローされます。 – jake

+0

@ user373312 - PanoramaItemをXAMLから削除しましたか? –

+0

いいえ、それをさせてください。 – jake

関連する問題