private static void ExecuteOpenPropertiesCommand(object parameter)
        {
            ResourceDescription rd = cnClient.GetStaticDataForElement((long)parameter);

            PropertiesControl propertiesControl = new PropertiesControl();

            List <DigitalMeasurement> digitalMeasurements = new List <DigitalMeasurement>();
            List <AnalogMeasurement>  analogMeasurements  = new List <AnalogMeasurement>();

            PropertiesModelView propertiesModelView = new PropertiesModelView();

            if (rd != null)
            {
                StaticProperties staticProperties = new StaticProperties();
                staticProperties.ReadFromResourceDescription(rd);

                GeneralStaticPropertiesControl generalStaticPropertiesControl = new GeneralStaticPropertiesControl()
                {
                    DataContext = staticProperties
                };

                propertiesControl.StaticProperties.Content = generalStaticPropertiesControl;

                if (rd.ContainsProperty(ModelCode.PSR_MEASUREMENTS))
                {
                    List <long> measurementGids = rd.GetProperty(ModelCode.PSR_MEASUREMENTS).AsLongs();

                    foreach (long meas in measurementGids)
                    {
                        rd = cnClient.GetStaticDataForElement(meas);

                        short type = ModelCodeHelper.ExtractTypeFromGlobalId(meas);

                        PropertiesModelView.Measurements.Clear();

                        if (type == (short)DMSType.DISCRETE)
                        {
                            DigitalMeasurement digitalMeasurement = new DigitalMeasurement();
                            digitalMeasurement.ReadFromResourceDescription(rd);

                            csClient.GetDiscreteMeasurement(rd.GetProperty(ModelCode.IDOBJ_MRID).AsString(), out OMSSCADACommon.States state);

                            digitalMeasurement.State = state;

                            digitalMeasurements.Add(digitalMeasurement);

                            PropertiesModelView.Measurements.Add(digitalMeasurement.MRID, digitalMeasurement);
                        }
                        else if (type == (short)DMSType.ANALOG)
                        {
                            AnalogMeasurement analogMeasurement = new AnalogMeasurement();
                            analogMeasurement.ReadFromResourceDescription(rd);

                            csClient.GetAnalogMeasurement(rd.GetProperty(ModelCode.IDOBJ_MRID).AsString(), out float value);

                            analogMeasurement.Value = value;

                            analogMeasurements.Add(analogMeasurement);

                            PropertiesModelView.Measurements.Add(analogMeasurement.MRID, analogMeasurement);
                        }
                    }
                }
            }

            if (digitalMeasurements.Count == 0 && analogMeasurements.Count == 0)
            {
                propertiesModelView.MeasurementVisibility = Visibility.Collapsed;
            }
            else
            {
                propertiesModelView.MeasurementVisibility = Visibility.Visible;

                propertiesControl.Measurements.Content = new MeasurementsControl()
                {
                    DataContext = propertiesModelView
                };

                if (digitalMeasurements.Count > 0)
                {
                    foreach (DigitalMeasurement measurement in digitalMeasurements)
                    {
                        DiscreteMeasurementControl discreteMeasurementControl = new DiscreteMeasurementControl()
                        {
                            DataContext = measurement
                        };

                        propertiesModelView.DigitalControls.Add(discreteMeasurementControl);
                    }

                    propertiesModelView.DigitalMeasurementVisibility = Visibility.Visible;
                }
                else
                {
                    propertiesModelView.DigitalMeasurementVisibility = Visibility.Collapsed;
                }

                if (analogMeasurements.Count > 0)
                {
                    foreach (AnalogMeasurement measurement in analogMeasurements)
                    {
                        AnalogMeasurementControl analogMeasurementControl = new AnalogMeasurementControl()
                        {
                            DataContext = measurement
                        };

                        propertiesModelView.AnalogControls.Add(analogMeasurementControl);
                    }


                    propertiesModelView.AnalogMeasurementVisibility = Visibility.Visible;
                }
                else
                {
                    propertiesModelView.AnalogMeasurementVisibility = Visibility.Collapsed;
                }
            }

            ShellFillerShell sfs = new ShellFillerShell() /*DataContext = this*/ }