Ejemplo n.º 1
0
        /// <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);
        }