0

リストビューのブラックベリー10カスケードの行数を取得する必要がありqmlますか?リストビューのデータソースモデルタイプはjsonです。私はこれを試しました

ListItem.initialized ? ListItem.view.dataModel.childCount(ListItem.indexPath) : 0

ただし、リストビューの行数が1を超えていても、表示されるのは0のみです。

私のコード

dataModel: groupdatamodel 
listItemComponents: [ 
    ListItemComponent { 
        type: "header" 

        Container { 
            preferredWidth: 748 
            layout: DockLayout { }

            Label {
                text: "Title" 
                base: SystemDefaults.TextStyles.TitleText
                fontWeight: FontWeight.Bold
            }
        }

        Label { 
            id: subtitle 
            text: groupdatamodel.size() + "Items"

            textStyle { 
                base: SystemDefaults.TextStyles.SmallText 
                fontWeight: FontWeight.Bold
        } 
    }
]
4

5 に答える 5

1
  1. メイン.qml

    import bb.cascades 1.0
    import bb.data 1.0
    
    Page {
        content: Container {
            Label {
                text: "List View with json parsing"
            }
            ListView {
                id: listViewDemo
                dataModel: GroupDataModel {
                    grouping: ItemGrouping.None
                }
                listItemComponents: [
                    ListItemComponent {
                        type: "listItem"
                        StandardListItem {
                            title: ListItemData.ThumnailImage
                            description: ListItemData.CategoryID
                        }
                    }
                ]
                function itemType(data, indexPath) {
                    return "listItem";
                }
            }
        }
        attachedObjects: [
            DataSource {
                id: serviceDataSource
                source: "contacts.json"
                type: DataSourceType.Json
                onDataLoaded: {
                    listViewDemo.dataModel.clear();
                    listViewDemo.dataModel.insertList(data)
                }
            }
        ]
        onCreationCompleted: {
            serviceDataSource.load();
        }
    }
    
  2. Contacts.json

    [   {"CategoryID":"3","CategoryName":"News","CountryID":"1","Result":"OK"},
    

    {"CategoryID":"4","CategoryName":"Daily Paper","CountryID":"1","Result":"OK"},{"CategoryID":"5","CategoryName":"Thanthi","CountryID":"1","Result":"OK"}, {"CategoryID":"1","CategoryName":"Newspaper","CountryID":"1","Result":"OK"}, {"CategoryID":"2","CategoryName":"Magazine","CountryID":"1","Result":"OK"} ]

  3. main.cpp

メインファイルに次の行を追加します

#include <bb/data/DataSource>
#include <bb/data/JsonDataAccess>

Q_DECL_EXPORT int main(int argc, char **argv)
{
    // We want to use DataSource in QML
    bb::data::DataSource::registerQmlTypes();

4.ファイル名.PRO

LIBS += -lbbdata

于 2013-09-03T08:50:12.270 に答える
0

DataModel :: childCount(ListItem indexPath)は、データモデル内の(したがってリストで使用可能な)データアイテムの数ではなく、indexPathで指定されたリスト内のアイテムの子カウントを返します。実際のデータモデルを調べる必要があります。たとえば、GroupDataModel :: size()は、QListDataModelの場合と同様に、GroupDataModel内のアイテムの数を返します。

于 2013-01-05T19:18:14.480 に答える
0

カスタム データ モデルを使用しない限り、ラベルにカスタム要素を追加することはできません。

于 2013-09-03T07:43:39.930 に答える
0

あなたが使用することができます:

your_groupdatamodel.size().toString();

また

your_groupdatamodel.childCount(0);

JavaScriptコードで。

J.

于 2014-06-16T11:30:57.850 に答える
0

私は自分のプロジェクトでこのコードを使用していますが、正常に動作します:

 console.log("pcs count" + pcsListModel.childCount(0));
于 2013-01-16T08:45:10.973 に答える