public FrameworkElement GetSimpleItemsControl() {
			StackPanel spanel = new StackPanel();
			spanel.Orientation = Orientation.Vertical;

			var simplelist = InitSimpleItems();

			simplelist.Where(x => x.isPresent).ForEach(x => {
				var sitem = config.parameters.simpleItem.FirstOrDefault(si => si.name == x.xname);
				if (sitem != null) {
					spanel.Children.Add(GetSimpleEditorCtrl(x.xtype, sitem.name, sitem));
				}
			});
			simplelist.Where(x => !x.isPresent).ForEach(x => {
				var sitem = new ItemList.SimpleItem() {
					name = x.xname,
					value = ""
				};

				FrameworkElement elem = GetSimpleEditorCtrl(x.xtype, x.xname, sitem);

				CheckBox chBox = new CheckBox();
				chBox.Margin = new Thickness(40, 0, 0, 0);
				chBox.Content = "Is element enabled";
				chBox.CreateBinding(CheckBox.IsCheckedProperty, (itemDescr)x, s => {
					elem.IsEnabled = s.isPresent;
					return s.isPresent;
				}, (o, v) => {
					o.isPresent = v;
					if (v) {
						elem.IsEnabled = true;
						if (config.parameters != null && config.parameters.simpleItem != null) {
							var items = config.parameters.simpleItem;
							config.parameters.simpleItem = items.Append(sitem).ToArray();
						} else {
							if (config.parameters == null) {
								config.parameters = new global::onvif.services.ItemList();
							}
							config.parameters.simpleItem = new ItemList.SimpleItem[] { sitem };
						}
					} else {
						elem.IsEnabled = false;
						if (config.parameters.simpleItem.Contains(sitem)) {
							int count = config.parameters.simpleItem.Count();
							var arr = new ItemList.SimpleItem[count - 1];
							int cnt = 0;
							for (int i = 0; i < count; i++) {
								if (config.parameters.simpleItem[i] != sitem) {
									arr[cnt] = config.parameters.simpleItem[i];
									cnt++;
								}
							}
							config.parameters.simpleItem = arr;
						}
					}
				});
				StackPanel tmppanel = new StackPanel();
				tmppanel.Orientation = Orientation.Horizontal;
				tmppanel.Children.Add(elem);
				tmppanel.Children.Add(chBox);

				spanel.Children.Add(tmppanel);
			});

			return spanel;
		}
		FrameworkElement GetValueEditor(elementDescr element) {
			FrameworkElement felem = null;

			switch (element.QName.Name) { 
				case "int":
					IntegerUpDown numUp = new IntegerUpDown();
					numUp.Margin = new Thickness(3);
					numUp.Increment = 1;
					numUp.VerticalAlignment = VerticalAlignment.Center;
					numUp.MinWidth = 50;
					numUp.CreateBinding(IntegerUpDown.ValueProperty, element, x => {
						int val = 0;
						int.TryParse(element.Value, out val);
						return val;
					}, (o, v) => {
						o.Value = v.ToString();
					});
					felem = numUp;
					break;
				case "float":
					DoubleUpDown doubleUp = new DoubleUpDown();
					doubleUp.CultureInfo = System.Globalization.CultureInfo.InvariantCulture;
					doubleUp.Margin = new Thickness(3);
					doubleUp.Increment = 0.01f;
					doubleUp.FormatString = "F3";
					doubleUp.VerticalAlignment = VerticalAlignment.Center;
					doubleUp.MinWidth = 50;
					doubleUp.CreateBinding(DoubleUpDown.ValueProperty, element, x => {
						float val = 0;
						//float.TryParse(element.Value, out val);
						try {
							val = XmlConvert.ToSingle(element.Value);
						}catch(Exception err){
							dbg.Error(err);
						}
						return val;
					}, (o, v) => {
						o.Value = XmlConvert.ToString(v);
					});
					felem = doubleUp;
					break;
				case "boolean":
					CheckBox chBox = new CheckBox();
					chBox.Margin = new Thickness(3);
					chBox.CreateBinding(CheckBox.IsCheckedProperty, element, x => {
						bool val = false;
						bool.TryParse(element.Value, out val);
						return val;
					}, (o, v) => {
						o.Value = v.ToString();
					});
					felem = chBox;
					break;
				default:
					TextBox tbox = new TextBox();
					tbox.Margin = new Thickness(3);
					tbox.CreateBinding(TextBox.TextProperty, element, x => x.Value, (o, v) => {
						o.Value = v;
					});
					tbox.MinWidth = 50;
					tbox.VerticalAlignment = System.Windows.VerticalAlignment.Center;
					felem = tbox;
					break;
			}
			return felem;
		}