private static object AddTreeItem(object obj, PropertyInfo info, FAAttribute attr, Grid grid) { System.Windows.UIElement item = null; object value = info.GetValue(obj, null); string name = info.Name; if (value is string || info.PropertyType == typeof(string)) { if (info.GetSetMethod(false) != null && attr.Readonly == false) item = CreateTextBox(obj, name); else item = CreateLabel(obj, name); } else if (value is bool || info.PropertyType == typeof(bool)) item = CreateCheckBox(obj, name); else if (value is System.Collections.ICollection || info.PropertyType == typeof(System.Collections.ICollection)) { item = CreateListView(obj, name); return item; } else if (value is short || value is ushort || value is int || value is uint || value is long || value is ulong || value is double) if (info.GetSetMethod(false) != null && attr.Readonly == false) item = CreateTextBox(obj, name); else item = CreateLabel(obj, name); else if (obj.GetType().GetProperty(name).PropertyType.IsEnum) { item = CreateComboBoxForEnumObject(obj, name); } else item = CreateLabel(obj, name); if (item != null) { grid.Children.Add(item); Grid.SetColumn(item, 2); } return grid; }
private void SaveTimerStatus(XElement xml, PropertyInfo propInfo, FAAttribute attr) { if (attr.GroupName != "Timer") return; FATime timeInfo = (FATime)propInfo.GetValue(this, null); XElement item = new XElement("Item"); item.Add(new XElement("Name", propInfo.Name)); item.Add(new XElement("Value", timeInfo.TypeValue)); item.Add(new XElement("Type", timeInfo.Type)); xml.Add(item); }