public void FromJson(JObject jRoot)
        {
            JToken collectorsToken = jRoot.SelectToken("properties.desired.windows." + SectionName);

            if (collectorsToken == null || !(collectorsToken is JObject))
            {
                return;
            }
            JObject collectorsObject = (JObject)collectorsToken;

            List <CollectorDesiredState> collectors = new List <CollectorDesiredState>();

            foreach (JProperty property in collectorsObject.Children())
            {
                if (property.Name == "?")
                {
                    if (property.Value is JValue && property.Value.Type == JTokenType.String)
                    {
                        switch ((string)property.Value)
                        {
                        case JsonDetailed:
                            NonDeviceTwinCollectors.SelectedIndex = 0;
                            break;

                        case JsonMinimal:
                            NonDeviceTwinCollectors.SelectedIndex = 1;
                            break;

                        case JsonNone:
                            NonDeviceTwinCollectors.SelectedIndex = 2;
                            break;
                        }
                    }
                }
                else
                {
                    CollectorDesiredState collectorDesiredState = CollectorDesiredState.FromJson(property.Name, property.Value);
                    if (collectorDesiredState != null)
                    {
                        collectors.Add(collectorDesiredState);
                    }
                }
            }
            CollectorsConfigurations = collectors;
        }