1

アプリケーションにセマンティック ズームを追加していますが、ズームアウトされたリストビューのデータ バインディングに問題があります。通常の(拡大された)リストビューでは、グループ化されたデータをバインドしていますが、正常にレンダリングされます。ズームアウトされたリストビューの場合、同じグループ化されたデータ (同じ itemDataSource と groupDataSource) をレンダリングしたいと思いますが、異なる itemTemplate と groupTemplate (通常のビューと同じですが小さい) を使用します。

私が抱えている問題は、ズームアウトすると、ui.js の 2117 行目で「0x800a138f - JavaScript ランタイム エラー: Object.defineProperty: 引数がオブジェクトではありません」というエラーが表示されることです。

ズームアウトしたリストビュー itemDataSource プロパティを groups.dataSource コレクションにバインドしようとしましたが、groupDataSource プロパティを設定しませんでした (Web で見つけたすべての例のように)。正常に動作します。

ズームアウト ビューが、通常のビューのようにグループ化されたアイテムをレンダリングしないのはなぜですか?

編集: ズームアウトされたビューは、通常の(ズームインされた)リストビューとは異なる方法で動作するようです。ズームイン ビューは itemDataSource と groupDataSource の両方を受け入れますが、ズームアウト ビューは itemDataSource のみを受け入れます。Microsoft Official Semantic Zoom Sample (scenario2.html)を編集し、zoomedOutListView を変更して myGroupedList.dataSource を itemDataSource として使用すると、同じ問題が発生します。

前のコード:

        <div id="zoomedOutListView"
            data-win-control="WinJS.UI.ListView"
            data-win-options="{ 
                itemDataSource: myGroupedList.groups.dataSource, 
                itemTemplate: semanticZoomTemplate, 
                selectionMode: 'none', 
                tapBehavior: 'invoke', 
                swipeBehavior: 'none' 
            }"
        ></div>

後のコード (問題を再現):

            <div id="zoomedOutListView"
            data-win-control="WinJS.UI.ListView"
            data-win-options="{ 
                itemDataSource: myGroupedList.dataSource, //originally was myGroupedList.groups.dataSource
                itemTemplate: semanticZoomTemplate, 
                selectionMode: 'none', 
                tapBehavior: 'invoke', 
                swipeBehavior: 'none' 
            }"
        ></div>

ありがとう。ディエゴ

4

1 に答える 1

1

カスタム IListDataSource を使用している場合は、itemFromKey メソッドを実装していることを確認してください。

于 2012-07-07T04:45:45.033 に答える