private void ReadFromXmlElement(XmlElement el)
        {
            if (el.HasAttribute("Group"))
                group = el.GetAttribute("Group");
            if (el.HasAttribute("Name"))
                name = el.GetAttribute("Name");
            if (el.HasAttribute("ReadOnly") && el.GetAttribute("ReadOnly") == "1")
                isReadonly = true;
            if (el.HasAttribute("Text"))
                text = el.GetAttribute("Text");

            if (el.HasAttribute("CVMaps"))
                CVMapsFromXml(el.GetAttribute("CVMaps"));

            if (el.HasAttribute("Default"))
                defaultValue = uint.Parse(el.GetAttribute("Default"));
            if (el.HasAttribute("Value"))
                value = uint.Parse(el.GetAttribute("Value"));
            else if (defaultValue.HasValue)
                value = defaultValue;
            //else
            //    currentValue = 0; // ???
            if (el.HasAttribute("Verified"))
                verified = el.GetAttribute("Verified") == "1";

            valueRange = DecoderParameterValueRange.FromXmlElement(el);
            valueChoices = DecoderParameterValueChoices.FromXmlElement(el);
            valueBitFlags = DecoderParameterValueBitFlags.FromXmlElement(el);
            valueBitFlagsStates.Clear();
            if (valueBitFlags != null)
            {
                foreach (DecoderParameterValueBitFlag v in valueBitFlags.Values)
                {
                    CheckBox chb = new CheckBox();
                    chb.Content = v.Name;
                    chb.Tag = v.Value;
                    chb.IsChecked = false;
                    chb.Checked += CheckBox_CheckedChanged;
                    chb.Unchecked += CheckBox_CheckedChanged;
                    valueBitFlagsStates.Add(chb);
                }
                SetCheckBoxValues();
            }
        }
 public static DecoderParameterValueRange FromXmlElement(XmlElement el)
 {
     DecoderParameterValueRange valueRange = new DecoderParameterValueRange();
     return (valueRange.ReadFromXmlElement(el) ? valueRange : null);
 }