private void ConfigSectionChanged(IConfigSection configSection) { configItemPanel.Children.Clear(); foreach (var configItem in configSection.GetType().GetProperties()) { var displayNameAttribute = (NameAttribute)Attribute.GetCustomAttribute(configItem, typeof(NameAttribute)); if (displayNameAttribute != null) { Binding b = new Binding(configItem.Name); b.Source = configSection; b.Mode = BindingMode.TwoWay; b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; var requiredAttribute = (RequiredAttribute)Attribute.GetCustomAttribute(configItem, typeof(RequiredAttribute)); var editorTypeAttribute = (ConfigEditorAttribute)Attribute.GetCustomAttribute(configItem, typeof(ConfigEditorAttribute)); if (ConfigSection.Guid == new Guid("FEACBCE2-8290-4D90-BB05-373B9D7DBBFC") && configItem.Name == "ExcludedIdentifiers") { CreateVisibilityControl(displayNameAttribute); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.CheckBoxList && ConfigSection.Guid == new Guid("FEACBCE2-8290-4D90-BB05-373B9D7DBBFC") && configItem.Name == "ActivatedExporters") { var exporterList = new CheckBoxList(); foreach (var exporter in _allExporters) { exporterList.Add(exporter.ExporterName); } CreateCheckboxListControl(displayNameAttribute, exporterList, b); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.CheckBoxList && editorTypeAttribute.SourceListType != null) { CreateCheckboxListControl(displayNameAttribute, (CheckBoxList)Activator.CreateInstance(editorTypeAttribute.SourceListType), b); } else if (editorTypeAttribute == null && configItem.PropertyType == typeof(string)) { CreateTextboxControl(displayNameAttribute, requiredAttribute, b); } else if (editorTypeAttribute == null && configItem.PropertyType == typeof(bool)) { CreateCheckboxControl(displayNameAttribute, b); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.ComboBox && editorTypeAttribute.SourceListType != null) { CreateComboboxControl(displayNameAttribute, requiredAttribute, editorTypeAttribute, b); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.Colorpicker) { CreateColorpickerControl(displayNameAttribute, b); } else if (editorTypeAttribute != null && (editorTypeAttribute.Editor == EditorType.Filepicker || editorTypeAttribute.Editor == EditorType.Folderpicker)) { CreateFilesystemControl(displayNameAttribute, requiredAttribute, editorTypeAttribute, b); } } } }
public void LoadComboBox() { CheckBox cb; foreach (var item in hObj.DriveList) { cb = new CheckBox(); cb.Content = item; cb.IsChecked = true; CheckBoxList.Add(cb); } }
private void ConfigSectionChanged(IConfigSection configSection) { configItemPanel.Children.Clear(); foreach (var configItem in configSection.GetType().GetProperties()) { var displayNameAttribute = (NameAttribute)Attribute.GetCustomAttribute(configItem, typeof(NameAttribute)); if(displayNameAttribute != null) { var b = new Binding(configItem.Name); b.Source = configSection; b.Mode = BindingMode.TwoWay; b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; var requiredAttribute = (RequiredAttribute)Attribute.GetCustomAttribute(configItem, typeof(RequiredAttribute)); var editorTypeAttribute = (ConfigEditorAttribute)Attribute.GetCustomAttribute(configItem, typeof(ConfigEditorAttribute)); if (ConfigSection.Guid == new Guid("FEACBCE2-8290-4D90-BB05-373B9D7DBBFC") && configItem.Name == "ExcludedIdentifiers") { CreateVisibilityControl(displayNameAttribute); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.CheckBoxList && ConfigSection.Guid == new Guid("FEACBCE2-8290-4D90-BB05-373B9D7DBBFC") && configItem.Name == "ActivatedExporters") { var exporterList = new CheckBoxList(); foreach (var exporter in _allExporters) { exporterList.Add(exporter.ExporterName); } CreateCheckboxListControl(displayNameAttribute, exporterList, b); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.CheckBoxList && editorTypeAttribute.SourceListType != null) { CreateCheckboxListControl(displayNameAttribute, (CheckBoxList)Activator.CreateInstance(editorTypeAttribute.SourceListType) ,b); } else if(editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.Markdown) { CreateMarkdownControl(displayNameAttribute, requiredAttribute, b); } else if(editorTypeAttribute == null && configItem.PropertyType == typeof(string)) { CreateTextboxControl(displayNameAttribute, requiredAttribute, b); } else if (editorTypeAttribute == null && configItem.PropertyType == typeof(bool)) { CreateCheckboxControl(displayNameAttribute, b); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.ComboBox && editorTypeAttribute.SourceListType != null) { CreateComboboxControl(displayNameAttribute, requiredAttribute, editorTypeAttribute, b); } else if (editorTypeAttribute != null && editorTypeAttribute.Editor == EditorType.Colorpicker) { CreateColorpickerControl(displayNameAttribute, b); } else if (editorTypeAttribute != null && (editorTypeAttribute.Editor == EditorType.Filepicker || editorTypeAttribute.Editor == EditorType.Folderpicker)) { CreateFilesystemControl(displayNameAttribute, requiredAttribute, editorTypeAttribute, b); } } } }