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