/// <summary> /// 绑定枚举类型的数据源。 /// </summary> /// <param name="enumerable"></param> private void BindEnumerable(IEnumerable enumerable) { ObjectBindingDefinition definition = null; var defined = false; var index = 0; foreach (var item in enumerable) { if (item == null) { continue; } if (!defined) { definition = GetBindingDefinition(item); defined = true; } var listitem = new TreeListItem(); Items.Add(listitem); BindListItem(listitem, item, definition, index); RaiseItemDataBoundEvent(listitem, item, index++); } }
private void BindListItem(TreeListItem listitem, object item, ObjectBindingDefinition definition, int index) { if (definition.PrimaryProperty != null) { listitem.KeyValue = definition.PrimaryProperty.GetValue(item); } var p = 0; foreach (var property in definition.Properties) { if (property != null) { var value = property.GetValue(item); listitem.Cells[p].Value = value; RaiseCellDataBoundEvent(listitem.Cells[p], item, value); } p++; } }