我正在使用一个类来生成一个SQLite表,但是我也希望将它作为ItemSource用于两个级别的ListView(带子项的列表视图)。
这适用于ListView:
public class ParentModel:List<ChildrenModel>
{
[PrimaryKey]
public string uid { get; set; }
public string name { get; set; }
[Ignore]
public string attributeA { get; set; }
public ParentModel() {
}
}
但当我执行mySQLiteConnection.CreateTable<ParentModel>();
时会抛出异常,因为Object是一个List&lt;&gt;。
我可以[忽略]属性,但有没有办法忽略这个类是List&lt;&gt;?
的事实我也可以在模型中创建一个List变量并[忽略]它,但这对ListView不起作用。
我能想到的唯一解决方案是创建两个具有相同属性的类,一个是List&lt;&gt;而另一个没有。
但我真的不喜欢这个想法。
答案 0 :(得分:1)
不确定为什么要继承List<ChildrenModel>
。您应该使ChildrenModel
类成为可以创建表的类,然后该表将包含所有ChildrenModel
项。然后在ParentModel
中,您可以拥有类型为List<ChildrenModel>
的公共属性,您可以从ChildrenModel表中加载该属性。您可能希望忽略该属性,因为SQLite无法存储List
。然后,您可以通过List<ChildrenModel>
课程中ParentModel
的公共属性访问您填充的列表。无论如何,这就是我要做的。