public virtual void GetInspectorOptions(List <ViewModel> viewModel) { var dataObject = this.DataObject; if (dataObject == null) { return; } foreach (var item in dataObject.GetPropertiesWithAttribute <InspectorProperty>()) { var property = item.Key; var attribute = item.Value; var fieldViewModel = new PropertyFieldViewModel() { Name = property.Name, DiagramViewModel = DiagramViewModel, }; fieldViewModel.Getter = () => property.GetValue(dataObject, null); fieldViewModel.Setter = (d, v) => property.SetValue(d, v, null); fieldViewModel.InspectorType = attribute.InspectorType; fieldViewModel.DataObject = dataObject; fieldViewModel.Type = property.PropertyType; fieldViewModel.CustomDrawerType = attribute.CustomDrawerType; fieldViewModel.CachedValue = fieldViewModel.Getter(); viewModel.Add(fieldViewModel); } }
public void AddPropertyFields(string headerText = null) { if (DataObject == null) { return; } ContentItems.Clear(); var ps = DataObject.GetPropertiesWithAttribute <InspectorProperty>().ToArray(); if (ps.Length < 1) { return; } if (!string.IsNullOrEmpty(headerText)) { ContentItems.Add(new SectionHeaderViewModel() { Name = headerText, }); } var data = DataObject; foreach (var property in ps) { PropertyInfo property1 = property.Key; var vm = new PropertyFieldViewModel() { Type = property.Key.PropertyType, Name = property.Key.Name, InspectorType = property.Value.InspectorType, CustomDrawerType = property.Value.CustomDrawerType, Getter = () => property1.GetValue(data, null), DataObject = data, Setter = (d, v) => { property1.SetValue(d, v, null); } }; ContentItems.Add(vm); } IsDirty = true; }
public void AddPropertyFields(string headerText = null) { var ps = GraphItem.GetPropertiesWithAttribute <NodeProperty>().ToArray(); if (ps.Length < 1) { return; } if (!string.IsNullOrEmpty(headerText)) { ContentItems.Add(new SectionHeaderViewModel() { Name = headerText, }); } foreach (var property in ps) { PropertyInfo property1 = property.Key; var vm = new PropertyFieldViewModel(this) { Type = property.Key.PropertyType, Name = property.Key.Name, InspectorType = property.Value.InspectorType, CustomDrawerType = property.Value.CustomDrawerType, Getter = () => property1.GetValue(GraphItem, null), DataObject = GraphItem, DisableInputs = true, DisableOutputs = true, Setter = (d, v) => { property1.SetValue(d, v, null); } }; ContentItems.Add(vm); } }