/// <summary>
        /// Property changed message recieved
        /// </summary>
        /// <param name="obj">Message property changed</param>
        private void PropertyChanged(PropertyChangedMsg obj)
        {
            var selectedRegisteredProperties = registeredProperties.Where(x => x.Value.PropertyName == obj.PropertyName && x.Value.PropertyParentObjectType == obj.PropertyParentObjectType);

            if (selectedRegisteredProperties == null)
            {
                return;
            }

            var destinationProperties = selectedRegisteredProperties.Select(x => x.Key)?.ToList();
            var targetProperty        = selectedRegisteredProperties.Select(x => x.Value)?.ToList();

            for (int i = 0; i < destinationProperties.Count; i++)
            {
                object value = obj.PropertyValue;

                if (!string.IsNullOrEmpty(targetProperty[i].PropertyInnerPropertyName))
                {
                    value = value.GetType().GetProperty(targetProperty[i].PropertyInnerPropertyName).GetValue(value);
                }

                if (destinationProperties[i].Converter != null)
                {
                    value = destinationProperties[i].Converter.Convert(value, destinationProperties[i].ConverterTargetType, destinationProperties[i].ConverterParameter, destinationProperties[i].ConverterLanguage);
                }

                destinationProperties[i].DestinationObject.SetValue(destinationProperties[i].DestinationProperty, value);
            }
        }
Exemple #2
0
        private void ReceiveMessage(PropertyChangedMsg msg)
        {
            string lsender = msg.Sender;
            string lProp   = msg.PropName;
            string lmsg    = msg.Msg;

            switch (lProp)
            {
            case "VD":
                LoadCharts();
                break;

            case "HD":
                LoadCharts();
                break;

            case "ChartDataUpdate":
                LoadCharts();
                break;

            default:
                break;
            }
        }