예제 #1
0
        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);
                    }
                }
            }
        }
예제 #2
0
        public void LoadComboBox()
        {
            CheckBox cb;

            foreach (var item in hObj.DriveList)
            {
                cb           = new CheckBox();
                cb.Content   = item;
                cb.IsChecked = true;
                CheckBoxList.Add(cb);
            }
        }
예제 #3
0
        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);
                    }
                }
            }
        }