getItemModel method
Implementation
ListItemModel? getItemModel(int index)
{
// fixed list?
if (S.isNullOrEmpty(datasource)) return (index < items.length) ? items[index] : null;
// item model exists?
if (data == null) return null;
if ((data.length < (index + 1))) return null;
if ((items.containsKey(index))) return items[index];
if ((index < 0) || (data.length < index)) return null;
// build prototype
XmlElement? prototype = S.fromPrototype(this.prototype, "${this.id}-$index");
// build item model
var model = ListItemModel.fromXml(this, prototype, data: data[index]);
if (model != null)
{
// register listener to dirty field
if (model.dirtyObservable != null) model.dirtyObservable!.registerListener(onDirtyListener);
// save model
items[index] = model;
}
return model;
}