Ejemplo n.º 1
0
        public void UpdateItems()
        {
            if (this.logicalItems == null)
            {
                return;
            }

            if (this.logicalItemProperties == null)
            {
                return;
            }

            if (this.dataItemProperties == null)
            {
                return;
            }

            for (int i = 0; i < this.logicalItems.Count; ++i)
            {
                RadListBoxItem currentItem = this.logicalItems[i];

                for (int j = 0; j < this.mappings.Mappings.Count; ++j)
                {
                    PropertyMapping currentMapping = this.mappings.Mappings[j];

                    PropertyDescriptor currentLogicalProperty = this.logicalItemProperties.Find(currentMapping.LogicalItemProperty, false);
                    PropertyDescriptor currentDataProperty    = this.dataItemProperties.Find(currentMapping.DataSourceItemProperty, false);

                    if (currentLogicalProperty != null && currentDataProperty != null)
                    {
                        if (currentMapping.LogicalItemProperty == "Text")
                        {
                            this.logicalItems[i].Text = (string)currentMapping.ConvertToLogicalValue(currentDataProperty.GetValue(currentItem.DataItem), currentDataProperty.Converter);
                        }

                        if (currentMapping.LogicalItemProperty == "Value")
                        {
                            this.logicalItems[i].Value = currentDataProperty.GetValue(this.logicalItems[i].DataItem);
                        }
                    }

                    if (currentDataProperty == null)
                    {
                        if (currentMapping.LogicalItemProperty == "Text" && currentMapping.DataSourceItemProperty == "" && currentMapping.ConvertToLogicalValue != null)
                        {
                            this.logicalItems[i].Text = (string)currentMapping.ConvertToLogicalValue(this.logicalItems[i].DataItem, TypeDescriptor.GetConverter(this.logicalItems[i].DataItem.GetType()));
                        }

                        if (currentMapping.LogicalItemProperty == "Value" && currentMapping.DataSourceItemProperty == "")
                        {
                            this.logicalItems[i].Value = this.logicalItems[i].DataItem;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        protected override void OnSourcePropertyNotFound(object dataItem, PropertyMapping mapping, PropertyDescriptor targetProp, object logicalItem)
        {
            if (dataItem != null)
            {
                if (mapping.LogicalItemProperty == "Text")
                {
                    targetProp.SetValue(logicalItem, mapping.ConvertToLogicalValue(dataItem, TypeDescriptor.GetConverter(dataItem.GetType())));
                }

                if (mapping.LogicalItemProperty == "Value")
                {
                    targetProp.SetValue(logicalItem, dataItem);
                }
            }
        }