0

いくつかの本の中を検索したいのですが、各本の結果はピボット コントロールの個別の項目に表示されます。それぞれは、その PivotItem 内の個別の LongListSelector コントロールによって表されます。ItemsSourceここで、LongListSelector またはピボットであるその親を割り当てる必要があるかどうかを知りたいですか?

すべての書籍の辞書があります。

private Dictionary<string, List<Model>> ItemResources = new Dictionary<string, List<Model>>();

上記のList<Model>内部に値として保存されますItemResources

これが私がすることです:

        foreach (var translation in ItemResources)
        {
            PivotItem pivotItem = new PivotItem
            {
                Header = translation.Key
            };

            LongListSelector lls = new LongListSelector
            {
                HideEmptyGroups = false,
                IsGroupingEnabled = false
            };

            lls.ItemTemplate = Resources["template"] as DataTemplate;
            lls.ItemsSource = translation.Value;

            pivotItem.Content = lls;

            ResultPivot.Items.Add(pivotItem);
        }

そして、templateこれは再利用可能な DataTemplate であり、次の各 pivotItem 内の longlistselector ごとに再生成しますResultPivot

<phone:PhoneApplicationPage.Resources>
    <DataTemplate x:Key="template">
        <StackPanel Margin="0,0,0,0" Orientation="Vertical">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Height="Auto" VerticalAlignment="Top" Width="455" Margin="3,20,3,0">
                <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
                <TextBlock Text="{Binding Number}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
            </StackPanel>
            <StackPanel Height="Auto" VerticalAlignment="Top" HorizontalAlignment="Left" Width="455" Margin="3,0,3,20">
                <TextBlock Text="{Binding Text}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" FontSize="{StaticResource PhoneFontSizeNormal}"/>
            </StackPanel>
        </StackPanel>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

問題は、実行後に画面に何も表示されないことです。デバッグで値が存在することを確認しましたが、データ バインディングに問題があるようです。どうすれば解決できますか?ありがとう

(これは Windows Phone 8 アプリですが、コンセプトは WPF とその幅広いコミュニティと同じであるため、私も追加しました)

4

1 に答える 1

0

UI は現在、ソースがいつ変更されたかを知る方法がありません。ソースが変更されたときに UI に適切に通知するには、インターフェイスを使用するObservableCollectionか実装する必要があります。INotifyPropertyChanged

于 2013-07-03T17:40:24.013 に答える