/// <summary> /// 将一个数据对象绑定到 <see cref="TreeList"/> /// </summary> /// <param name="dataSource"></param> public void DataBind(object dataSource) { this.dataSource = dataSource; BeginUpdate(); var selectKeyValues = GetSelectedItems(); Items.Clear(); SelectedItems.InternalClear(); CheckedItems.InternalClear(); if (dataSource == null) { EndUpdate(); return; } if (dataSource is DataSet) { var ds = (DataSet)dataSource; if (ds.Tables.Count > 0) { BindDataTable(ds.Tables[0]); } } if (dataSource is DataTable) { BindDataTable((DataTable)dataSource); } else if (dataSource is IEnumerable) { BindEnumerable((IEnumerable)dataSource); } EndUpdate(); ReSelectItems(selectKeyValues); }