/// <summary> /// Builds collection of item properties. /// </summary> /// <param name="parametersCount">Parameters count.</param> /// <param name="itemPorpertiesCollection">Item properties collection.</param> /// <param name="collectionSource">Collection source.</param> private void _BuildCollectionSource(int parametersCount, ArrayList itemPorpertiesCollection, DataGridCollectionViewSource collectionSource) { Debug.Assert(null != itemPorpertiesCollection); Debug.Assert(null != collectionSource); collectionSource.ItemProperties.Clear(); foreach (DataGridItemProperty property in itemPorpertiesCollection) { if (!property.Name.Equals(DYNAMIC_FIELDS_ALIAS)) { collectionSource.ItemProperties.Add(property); } else { for (int index = 0; index < parametersCount; ++index) { string valuePath = property.ValuePath + string.Format(DYNAMIC_VALUE_NAME_FORMAT, index); string valueName = _GetDynamicFieldName(index); var newProperty = new DataGridItemProperty(valueName, valuePath, typeof(string)); collectionSource.ItemProperties.Add(newProperty); } } } }
/// <summary> /// Builds collection of dynamic capacities /// </summary> /// <returns></returns> private Collection <DataGridItemProperty> _GetDynamicCapacitiesProperties(string baseValuePath, bool isReadonly) { Collection <DataGridItemProperty> dynamicProperties = new Collection <DataGridItemProperty>(); for (int i = 0; i < App.Current.Project.CapacitiesInfo.Count; i++) { string valuePath = baseValuePath + string.Format("Capacities[{0}]", i); string valueName = Capacities.GetCapacityPropertyName(i); DataGridItemProperty newProperty = new DataGridItemProperty(valueName, valuePath, typeof(double)); newProperty.IsReadOnly = isReadonly; dynamicProperties.Add(newProperty); } return(dynamicProperties); }
/// <summary> /// Builds collection of dynamic custom oreder properties fields /// </summary> /// <returns></returns> private Collection <DataGridItemProperty> _GetDynamicCustomOrderProperties(string baseValuePath, bool isReadOnly) { Collection <DataGridItemProperty> dynamicProperties = new Collection <DataGridItemProperty>(); OrderCustomPropertiesInfo infos = App.Current.Project.OrderCustomPropertiesInfo; for (int i = 0; i < infos.Count; i++) { string valuePath = baseValuePath + string.Format("CustomProperties[{0}]", i); string valueName = OrderCustomProperties.GetCustomPropertyName(i); Type type = (infos[i].Type == OrderCustomPropertyType.Text)? typeof(string) : typeof(double); DataGridItemProperty newProperty = new DataGridItemProperty(valueName, valuePath, type); newProperty.IsReadOnly = isReadOnly; dynamicProperties.Add(newProperty); } return(dynamicProperties); }
/// <summary> /// Builds collection of dynamic address fields /// </summary> /// <returns></returns> private Collection <DataGridItemProperty> _GetDynamicAddressProperties(string baseValuePath, bool isReadOnly) { Collection <DataGridItemProperty> dynamicProperties = new Collection <DataGridItemProperty>(); AddressField[] addressFields = App.Current.Geocoder.AddressFields; for (int i = 0; i < addressFields.Length; i++) { if (addressFields[i].Visible) { string valuePath = baseValuePath + string.Format("Address[{0}]", addressFields[i].Type.ToString()); string propertyName = addressFields[i].Type.ToString(); DataGridItemProperty newProperty = new DataGridItemProperty(propertyName, valuePath, typeof(string)); newProperty.IsReadOnly = isReadOnly; dynamicProperties.Add(newProperty); } } return(dynamicProperties); }