我正在研究QML.NET的TableView。我有一个C#对象类(人员:ID和名称)。我想用我的C#类(人)填充QML表视图。
有人知道如何实现这一目标吗?
答案 0 :(得分:1)
您将需要使用Net.toListModel(personModel.personList)
方法将List<Person>
转换为QML TableView可以使用的模型。
import QtQuick 2.6
import QtQuick.Controls 2.1
import QtQuick.Controls 1.4
import Features 1.0
Page {
Pane {
id: detsPane
anchors.fill: parent
contentHeight: pane.implicitHeight
TableView {
id: personTable
implicitWidth: pane.width -20
TableViewColumn {
role: "id"
title: "Identifier"
}
TableViewColumn {
role: "name"
title: "Name"
}
model: personModel
}
PersonModel {
id: personModel
Component.onCompleted: {
personTable.model = Net.toListModel(personModel.personList)
}
}
}
}
using System.Collections.Generic;
namespace GUI.Models
{
public class PersonModel
{
public class Person
{
public string Id { get; set; }
public string Name { get; set; }
}
public List<Person> PersonList { get; } = new List<Person>()
{
new Person(){Id="BB", Name="Bob Bobber" },
new Person(){Id="RM", Name="Rod McRod" }
};
}
}
Nb。 qml页面已从项目页面添加到示例项目。 Main.qml
:
Drawer {
...
model: ListModel {
ListElement { title: "Contacts"; source: "pages/PersonPage.qml" }
}
...
}
还假设您已经在Program.cs
Qml.Net.Qml.RegisterType<PersonModel>("Features");