示例#1
0
        public void DataBind()
        {
            Clear();

            System.Object o = null;
            o = GetResolvedDataSource(DataSource, DataMember);
            IEnumerable ie    = (IEnumerable)o;
            ITypedList  tlist = (ITypedList)o;

            // FIXME: does not belong in this base method
            TreeIter iter = new TreeIter();

            PropertyDescriptorCollection pdc = tlist.GetItemProperties(new PropertyDescriptor[0]);

            // FIXME: does not belong in this base method
            gridColumns = new DataGridColumn[pdc.Count];

            // FIXME: does not belong in base method
            // define the columns in the treeview store
            // based on the schema of the result
            uint[] theTypes = new uint[pdc.Count];
            for (int col = 0; col < pdc.Count; col++)
            {
                theTypes[col] = (int)TypeFundamentals.TypeString;
            }
            store.SetColumnTypes(theTypes);

            // FIXME: does not belong in this base method
            int colndx = -1;

            foreach (PropertyDescriptor pd in pdc)
            {
                colndx++;
                gridColumns[colndx]            = new DataGridColumn();
                gridColumns[colndx].ColumnName = pd.Name;
            }

            foreach (System.Object obj in ie)
            {
                ICustomTypeDescriptor        custom = (ICustomTypeDescriptor)obj;
                PropertyDescriptorCollection properties;
                properties = custom.GetProperties();

                iter = NewRow();
                int cv = 0;
                foreach (PropertyDescriptor property in properties)
                {
                    object oPropValue = property.GetValue(obj);
                    string sPropValue = oPropValue.ToString();

                    // FIXME: does not belong in this base method
                    SetColumnValue(iter, cv, sPropValue);

                    cv++;
                }
            }

            // FIXME: does not belong in this base method
            treeView.Model = store;
            AutoCreateTreeViewColumns(treeView);
        }