实例介绍
【实例简介】
文件清单
└── PropertyTools-0e2da56440ad24f58e5e743e6811e2f3f67ebd22
├── appveyor.yml
├── AUTHORS
├── CHANGELOG.md
├── CONTRIBUTORS
├── GitVersion.yml
├── Images
│ ├── AboutDialog.png
│ ├── ColorPicker2.png
│ ├── ColorPicker.png
│ ├── DataGrid.png
│ ├── icon.png
│ ├── PropertyDialog.png
│ ├── PropertyGrid.png
│ └── TreeListBox.png
├── LICENSE
├── README.md
└── Source
├── AssemblyInfo.cs
├── Examples
│ ├── Controls
│ │ ├── ControlDemos
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── ControlDemos.csproj
│ │ │ ├── ControlDemos.csproj.DotSettings
│ │ │ ├── Examples.xml
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Pages
│ │ │ │ ├── CheckMarkPage.xaml
│ │ │ │ ├── CheckMarkPage.xaml.cs
│ │ │ │ ├── ColorPickerPage.xaml
│ │ │ │ ├── ColorPickerPage.xaml.cs
│ │ │ │ ├── DirectoryPickerPage.xaml
│ │ │ │ ├── DirectoryPickerPage.xaml.cs
│ │ │ │ ├── DockPanelSplitterPage.xaml
│ │ │ │ ├── DockPanelSplitterPage.xaml.cs
│ │ │ │ ├── EditableTextBlockAndPropertyGridPage.xaml
│ │ │ │ ├── EditableTextBlockAndPropertyGridPage.xaml.cs
│ │ │ │ ├── EditableTextBlockPage.xaml
│ │ │ │ ├── EditableTextBlockPage.xaml.cs
│ │ │ │ ├── EnumMenuItemPage.xaml
│ │ │ │ ├── EnumMenuItemPage.xaml.cs
│ │ │ │ ├── FilePickerPage.xaml
│ │ │ │ ├── FilePickerPage.xaml.cs
│ │ │ │ ├── FormattingTextBoxPage.xaml
│ │ │ │ ├── FormattingTextBoxPage.xaml.cs
│ │ │ │ ├── HeaderedEntrySliderPage.xaml
│ │ │ │ ├── HeaderedEntrySliderPage.xaml.cs
│ │ │ │ ├── LinkBlockPage.xaml
│ │ │ │ ├── LinkBlockPage.xaml.cs
│ │ │ │ ├── PopupBoxPage.xaml
│ │ │ │ ├── PopupBoxPage.xaml.cs
│ │ │ │ ├── RadioButtonListPage.xaml
│ │ │ │ ├── RadioButtonListPage.xaml.cs
│ │ │ │ ├── SpinControlPage.xaml
│ │ │ │ ├── SpinControlPage.xaml.cs
│ │ │ │ ├── TextBlockExPage.xaml
│ │ │ │ └── TextBlockExPage.xaml.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── DialogDemos
│ │ ├── 3d.png
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── DialogDemos.csproj
│ │ ├── OptionsViewModel.cs
│ │ ├── Person.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── pt32.png
│ │ ├── pt.png
│ │ ├── Settings.cs
│ │ ├── Window1.xaml
│ │ └── Window1.xaml.cs
│ ├── DataGrid
│ │ └── DataGridDemo
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── DataGridDemo.csproj
│ │ ├── DataGridDemo.csproj.DotSettings
│ │ ├── DataTypes
│ │ │ ├── MassConverter.cs
│ │ │ ├── Mass.cs
│ │ │ └── MassValueConverter.cs
│ │ ├── Examples
│ │ │ ├── AbsoluteWidthExample.xaml
│ │ │ ├── AbsoluteWidthExample.xaml.cs
│ │ │ ├── ArrayOfArrayExample.xaml
│ │ │ ├── ArrayOfArrayExample.xaml.cs
│ │ │ ├── ArrayOfDoubleExample.xaml
│ │ │ ├── ArrayOfDoubleExample.xaml.cs
│ │ │ ├── AutoFillDisabledExample.xaml
│ │ │ ├── AutoFillDisabledExample.xaml.cs
│ │ │ ├── AutoWidthExample.xaml
│ │ │ ├── AutoWidthExample.xaml.cs
│ │ │ ├── BackgroundExample.xaml
│ │ │ ├── BackgroundExample.xaml.cs
│ │ │ ├── CustomColumnsExample.xaml
│ │ │ ├── CustomColumnsExample.xaml.cs
│ │ │ ├── CustomHeaderExample.xaml
│ │ │ ├── CustomHeaderExample.xaml.cs
│ │ │ ├── CustomRowsExample.xaml
│ │ │ ├── CustomRowsExample.xaml.cs
│ │ │ ├── CustomTypeDescriptorExample.xaml
│ │ │ ├── CustomTypeDescriptorExample.xaml.cs
│ │ │ ├── DatatableExample.xaml
│ │ │ ├── DatatableExample.xaml.cs
│ │ │ ├── DisabledExample.xaml
│ │ │ ├── DisabledExample.xaml.cs
│ │ │ ├── EasyInsertExample.xaml
│ │ │ ├── EasyInsertExample.xaml.cs
│ │ │ ├── EnableByAttributeExample.xaml
│ │ │ ├── EnableByAttributeExample.xaml.cs
│ │ │ ├── EnableByPropertyExample.xaml
│ │ │ ├── EnableByPropertyExample.xaml.cs
│ │ │ ├── ExampleViewModel.cs
│ │ │ ├── ExceptionExample.xaml
│ │ │ ├── ExceptionExample.xaml.cs
│ │ │ ├── ExtendedToolkitExample.xaml
│ │ │ ├── ExtendedToolkitExample.xaml.cs
│ │ │ ├── GettingStartedExample.xaml
│ │ │ ├── GettingStartedExample.xaml.cs
│ │ │ ├── HeaderFormatStringExample.xaml
│ │ │ ├── HeaderFormatStringExample.xaml.cs
│ │ │ ├── InputDirectionExample.xaml
│ │ │ ├── InputDirectionExample.xaml.cs
│ │ │ ├── ListOfIntExample.xaml
│ │ │ ├── ListOfIntExample.xaml.cs
│ │ │ ├── ListOfList
│ │ │ │ ├── ListOfListOfBoolExample.xaml
│ │ │ │ ├── ListOfListOfBoolExample.xaml.cs
│ │ │ │ ├── ListOfListOfColorExample.xaml
│ │ │ │ ├── ListOfListOfColorExample.xaml.cs
│ │ │ │ ├── ListOfListOfFruitExample.xaml
│ │ │ │ ├── ListOfListOfFruitExample.xaml.cs
│ │ │ │ ├── ListOfListOfIntExample.xaml
│ │ │ │ ├── ListOfListOfIntExample.xaml.cs
│ │ │ │ ├── ListOfListOfMassExample.xaml
│ │ │ │ └── ListOfListOfMassExample.xaml.cs
│ │ │ ├── ListOfMassExample.xaml
│ │ │ ├── ListOfMassExample.xaml.cs
│ │ │ ├── ListOfObjectExample.xaml
│ │ │ ├── ListOfObjectExample.xaml.cs
│ │ │ ├── ListOfPlainObjectCustomColumnsExample.xaml
│ │ │ ├── ListOfPlainObjectCustomColumnsExample.xaml.cs
│ │ │ ├── ListOfPlainObjectExample.xaml
│ │ │ ├── ListOfPlainObjectExample.xaml.cs
│ │ │ ├── ListOfStringExample.xaml
│ │ │ ├── ListOfStringExample.xaml.cs
│ │ │ ├── ListOfVectorExample.xaml
│ │ │ ├── ListOfVectorExample.xaml.cs
│ │ │ ├── NaturalSortingExample.xaml
│ │ │ ├── NaturalSortingExample.xaml.cs
│ │ │ ├── NullableExample.xaml
│ │ │ ├── NullableExample.xaml.cs
│ │ │ ├── NullExample.xaml
│ │ │ ├── NullExample.xaml.cs
│ │ │ ├── ObservableCollectionOfDoubleExample.xaml
│ │ │ ├── ObservableCollectionOfDoubleExample.xaml.cs
│ │ │ ├── ObservableCollectionOfExampleObjectExample.xaml
│ │ │ ├── ObservableCollectionOfExampleObjectExample.xaml.cs
│ │ │ ├── ObservableCollectionOfMassExample.xaml
│ │ │ ├── ObservableCollectionOfMassExample.xaml.cs
│ │ │ ├── ObservableCollectionOfStringExample.xaml
│ │ │ ├── ObservableCollectionOfStringExample.xaml.cs
│ │ │ ├── RelativeWidthExample.xaml
│ │ │ ├── RelativeWidthExample.xaml.cs
│ │ │ ├── ScrollViewerExample.xaml
│ │ │ ├── ScrollViewerExample.xaml.cs
│ │ │ ├── SelectedItemsExample.xaml
│ │ │ ├── SelectedItemsExample.xaml.cs
│ │ │ ├── SelectorExample.xaml
│ │ │ ├── SelectorExample.xaml.cs
│ │ │ ├── StandardDataGrid
│ │ │ │ ├── GettingStartedExample.xaml
│ │ │ │ └── GettingStartedExample.xaml.cs
│ │ │ ├── SyncTableExample.xaml
│ │ │ ├── SyncTableExample.xaml.cs
│ │ │ ├── TableExample.xaml
│ │ │ ├── TableExample.xaml.cs
│ │ │ ├── TemplateExample.xaml
│ │ │ ├── TemplateExample.xaml.cs
│ │ │ ├── ThreadExample.xaml
│ │ │ ├── ThreadExample.xaml.cs
│ │ │ ├── ValidationExampleWindow.xaml
│ │ │ ├── ValidationExampleWindow.xaml.cs
│ │ │ ├── VectorExample.xaml
│ │ │ ├── VectorExample.xaml.cs
│ │ │ ├── WpfDataGridExample.xaml
│ │ │ ├── WpfDataGridExample.xaml.cs
│ │ │ └── WrapItems
│ │ │ ├── ArrayOfObjectExample.xaml
│ │ │ ├── ArrayOfObjectExample.xaml.cs
│ │ │ ├── BackgroundBindingSourceExample.xaml
│ │ │ ├── BackgroundBindingSourceExample.xaml.cs
│ │ │ ├── IsEnabledBindingSourceExample.xaml
│ │ │ ├── IsEnabledBindingSourceExample.xaml.cs
│ │ │ ├── MultitypeMatrixExample.xaml
│ │ │ ├── MultitypeMatrixExample.xaml.cs
│ │ │ ├── ObservableCollectionOfObjectExample.xaml
│ │ │ ├── ObservableCollectionOfObjectExample.xaml.cs
│ │ │ ├── WrapItemsExample.xaml
│ │ │ ├── WrapItemsExample.xaml.cs
│ │ │ ├── WrapItemsOfMassExample.xaml
│ │ │ └── WrapItemsOfMassExample.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Model
│ │ │ ├── ExampleObject.cs
│ │ │ ├── Fruit.cs
│ │ │ ├── PlainOldObject.cs
│ │ │ ├── StandardCollections.cs
│ │ │ └── ValidatableObject.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── ItemsBag
│ │ └── ItemsBagDemo
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── ItemsBagDemo.csproj
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Model.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── PropertyGrid
│ │ ├── CustomFactoryDemo
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── Attributes
│ │ │ │ └── ImportantAttribute.cs
│ │ │ ├── CustomFactoryDemo.csproj
│ │ │ ├── Factories
│ │ │ │ ├── CustomPropertyGridControlFactory.cs
│ │ │ │ ├── CustomPropertyGridOperator.cs
│ │ │ │ └── ImportantPropertyItem.cs
│ │ │ ├── Model
│ │ │ │ ├── Range.cs
│ │ │ │ └── TestObject.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ViewModels
│ │ │ │ └── MainViewModel.cs
│ │ │ └── Views
│ │ │ ├── MainWindow.xaml
│ │ │ └── MainWindow.xaml.cs
│ │ ├── PropertyGridDemo
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── Converters
│ │ │ │ ├── BigIntegerConverter.cs
│ │ │ │ ├── ComplexConverter.cs
│ │ │ │ ├── HexConverter.cs
│ │ │ │ ├── MassConverter.cs
│ │ │ │ └── MultiValueToStringConverter.cs
│ │ │ ├── CustomControlFactory.cs
│ │ │ ├── CustomOperator.cs
│ │ │ ├── DataTypes
│ │ │ │ ├── Length.cs
│ │ │ │ ├── Mass.cs
│ │ │ │ ├── TestEnumeration.cs
│ │ │ │ └── UnitUtilities.cs
│ │ │ ├── Example.cs
│ │ │ ├── Examples
│ │ │ │ ├── AdvancedTypesExample.cs
│ │ │ │ ├── AutomaticDisplayNamesExample.cs
│ │ │ │ ├── AutoUpdateTextAttributeExample.cs
│ │ │ │ ├── BrowsableAttributeExample.cs
│ │ │ │ ├── BrowsableFalseAttributeExample.cs
│ │ │ │ ├── BrowsableTrueAttributeExample.cs
│ │ │ │ ├── CategoryAttributeExample.cs
│ │ │ │ ├── CheckableItemsAttributeExample.cs
│ │ │ │ ├── CollectionsExample.cs
│ │ │ │ ├── CommandExample.cs
│ │ │ │ ├── CommentAttributeExample.cs
│ │ │ │ ├── ContentAttributeExample.cs
│ │ │ │ ├── ConverterAttributeExample.cs
│ │ │ │ ├── DataAnnotationsExample.cs
│ │ │ │ ├── DataErrorInfoExample.cs
│ │ │ │ ├── DataTypeAttributeExample.cs
│ │ │ │ ├── DescriptionAttributeExample.cs
│ │ │ │ ├── DictionaryExample.cs
│ │ │ │ ├── DirectoryPathAttributeExample.cs
│ │ │ │ ├── DisplayNameAttributeExample.cs
│ │ │ │ ├── EditableAttributeExample.cs
│ │ │ │ ├── EnableByRadioButtonAttributeExample.cs
│ │ │ │ ├── EnabledByAttributeExample.cs
│ │ │ │ ├── EnumsExample.cs
│ │ │ │ ├── ExceptionExample.cs
│ │ │ │ ├── FilePathAttributeExample.cs
│ │ │ │ ├── FillTabAttributeExample.cs
│ │ │ │ ├── FormatStringAttributeExample.cs
│ │ │ │ ├── HeaderPlacementAttributeExample.cs
│ │ │ │ ├── ImageSourceExample.cs
│ │ │ │ ├── IndentationLevelAttributeExample.cs
│ │ │ │ ├── ItemsSourcePropertyExample.cs
│ │ │ │ ├── MetaDataTypeExample.cs
│ │ │ │ ├── NotifyDataErrorInfoExample.cs
│ │ │ │ ├── NotifyDataErrorInfoSeverityExample.cs
│ │ │ │ ├── OptionalAttributeExample.cs
│ │ │ │ ├── PasswordExample.cs
│ │ │ │ ├── PerformanceExample.cs
│ │ │ │ ├── ReadOnlyAttributeExample.cs
│ │ │ │ ├── sheep.png
│ │ │ │ ├── SimpleTypesExample.cs
│ │ │ │ ├── SlidableAttributeExample.cs
│ │ │ │ ├── SpinnableAttributeExample.cs
│ │ │ │ ├── SubClassExample.cs
│ │ │ │ └── VisibleByAttributeExample.cs
│ │ │ ├── Examples.cs
│ │ │ ├── FodyWeavers.xml
│ │ │ ├── FodyWeavers.xsd
│ │ │ ├── Images
│ │ │ │ ├── category.png
│ │ │ │ ├── chart.png
│ │ │ │ ├── error.png
│ │ │ │ ├── home2.png
│ │ │ │ ├── home3.png
│ │ │ │ ├── home.png
│ │ │ │ ├── lightbulb1.png
│ │ │ │ ├── lightbulb.png
│ │ │ │ └── sheep.png
│ │ │ ├── LengthConverter.cs
│ │ │ ├── MainViewModel.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── PropertyGridDemo.csproj
│ │ │ ├── PropertyGridExampleAttribute.cs
│ │ │ └── Validation
│ │ │ └── ValidationResultEx.cs
│ │ ├── SimpleDemo
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindowViewModel.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── MassConverter.cs
│ │ │ ├── Mass.cs
│ │ │ ├── Person.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── SimpleDemo.csproj
│ │ └── UndoRedoDemo
│ │ ├── AppBootstrapper.cs
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── Core
│ │ │ ├── DelegateTraceListener.cs
│ │ │ ├── UndoableCollection.cs
│ │ │ └── UndoableObject.cs
│ │ ├── Model
│ │ │ └── Measurement.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── UndoRedo
│ │ │ ├── CollectionChangeUndoRedoAction.cs
│ │ │ ├── IUndoRedoAction.cs
│ │ │ ├── PropertyChangeUndoRedoAction.cs
│ │ │ └── UndoRedoService.cs
│ │ ├── UndoRedoDemo.csproj
│ │ ├── ViewModels
│ │ │ └── ShellViewModel.cs
│ │ └── Views
│ │ ├── ShellView.xaml
│ │ └── TextBoxBehaviors.cs
│ └── TreeListBox
│ ├── AddRemoveDemo
│ │ ├── AddRemoveDemo.csproj
│ │ ├── App.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── MainWindowViewModel.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Node.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── DirectoryDemo
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── DirectoryDemo.csproj
│ │ ├── DirectoryViewModel.cs
│ │ ├── folder.png
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ └── TreeListBoxDemo
│ ├── app.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── folder.png
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Model
│ │ ├── CompositeNode.cs
│ │ └── Node.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TreeListBoxDemo.csproj
│ └── ViewModel
│ ├── MainViewModel.cs
│ ├── NodeViewModel.cs
│ └── Observable.cs
├── PropertyTools
│ ├── DataAnnotations
│ │ ├── AutoUpdateTextAttribute.cs
│ │ ├── BasePathPropertyAttribute.cs
│ │ ├── BrowsableAttribute.cs
│ │ ├── CategoryAttribute.cs
│ │ ├── CheckableItemsAttribute.cs
│ │ ├── Column.cs
│ │ ├── ColumnsPropertyAttribute.cs
│ │ ├── CommentAttribute.cs
│ │ ├── ContentAttribute.cs
│ │ ├── ConverterAttribute.cs
│ │ ├── DefaultExtensionPropertyAttribute.cs
│ │ ├── DescriptionAttribute.cs
│ │ ├── DirectoryPathAttribute.cs
│ │ ├── DisplayMemberPathAttribute.cs
│ │ ├── DisplayNameAttribute.cs
│ │ ├── EasyInsertAttribute.cs
│ │ ├── EditableAttribute.cs
│ │ ├── EnableByAttribute.cs
│ │ ├── EnableByRadioButtonAttribute.cs
│ │ ├── FillTabAttribute.cs
│ │ ├── FilterPropertyAttribute.cs
│ │ ├── FontAttribute.cs
│ │ ├── FontFamilySelectorAttribute.cs
│ │ ├── FontPreviewAttribute.cs
│ │ ├── FormatStringAttribute.cs
│ │ ├── HeaderPlacementAttribute.cs
│ │ ├── HeaderPlacement.cs
│ │ ├── HeightAttribute.cs
│ │ ├── HorizontalAlignmentAttribute.cs
│ │ ├── HorizontalAlignment.cs
│ │ ├── IndentationLevelAttribute.cs
│ │ ├── InputDirectionAttribute.cs
│ │ ├── InputDirection.cs
│ │ ├── InputFilePathAttribute.cs
│ │ ├── ItemHeaderPropertyAttribute.cs
│ │ ├── ItemsSourcePropertyAttribute.cs
│ │ ├── ListAttribute.cs
│ │ ├── ListItemItemsSourcePropertyAttribute.cs
│ │ ├── OptionalAttribute.cs
│ │ ├── OutputFilePathAttribute.cs
│ │ ├── ReadOnlyAttribute.cs
│ │ ├── ResettableAttribute.cs
│ │ ├── SelectedValuePathAttribute.cs
│ │ ├── SelectorStyleAttribute.cs
│ │ ├── SelectorStyle.cs
│ │ ├── SlidableAttribute.cs
│ │ ├── SortIndexAttribute.cs
│ │ ├── SpinnableAttribute.cs
│ │ ├── VisibleByAttribute.cs
│ │ ├── WidePropertyAttribute.cs
│ │ └── WidthAttribute.cs
│ ├── DragDrop
│ │ ├── DropPosition.cs
│ │ ├── IDragSource.cs
│ │ └── IDropTarget.cs
│ ├── Observable
│ │ └── Observable.cs
│ ├── PropertyTools.csproj
│ ├── PropertyTools.csproj.DotSettings
│ └── PropertyTools.snk
├── PropertyTools.AppVeyor.sln
├── PropertyTools.sln
├── PropertyTools.sln.DotSettings
├── PropertyTools.snk
├── PropertyTools.Wpf
│ ├── Behaviors
│ │ ├── ScreenGrab.cs
│ │ └── WebBrowserBehavior.cs
│ ├── Chrome
│ │ ├── ButtonChrome.cs
│ │ └── SystemDropShadowChrome.cs
│ ├── CommandBindings
│ │ ├── DelegateCommandBinding.cs
│ │ └── DelegateCommandBinding{T}.cs
│ ├── Commands
│ │ └── DelegateCommand.cs
│ ├── Comparers
│ │ ├── EnumerableComparer{T}.cs
│ │ ├── ISortDescriptionComparer.cs
│ │ ├── NaturalObjectComparer.cs
│ │ ├── NaturalSortDescriptionComparer.cs
│ │ └── NaturalStringComparer.cs
│ ├── Controls
│ │ ├── Bitmap.cs
│ │ ├── CheckMark
│ │ │ ├── CheckMark.cs
│ │ │ └── Generic.xaml
│ │ ├── ColorPicker
│ │ │ ├── ColorPicker.cs
│ │ │ ├── ColorPickerPanel.cs
│ │ │ ├── ColorPickerPanelStrings.cs
│ │ │ ├── ColorPicker.png
│ │ │ ├── ColorSlider.cs
│ │ │ ├── Generic.xaml
│ │ │ ├── HsvControl.cs
│ │ │ ├── Hsv.png
│ │ │ └── SpectrumSlider.cs
│ │ ├── DockPanelSplitter
│ │ │ ├── DockPanelSplitter.cs
│ │ │ └── Generic.xaml
│ │ ├── EditableTextBlock.cs
│ │ ├── EnumMenuItem.cs
│ │ ├── FilePicker
│ │ │ ├── DirectoryPicker.cs
│ │ │ ├── FilePicker.cs
│ │ │ ├── Generic.xaml
│ │ │ ├── IFileDialogService.cs
│ │ │ └── IFolderBrowserDialogService.cs
│ │ ├── FormattingTextBox.cs
│ │ ├── HeaderedEntrySlider
│ │ │ ├── Generic.xaml
│ │ │ └── HeaderedEntrySlider.cs
│ │ ├── LinkBlock.cs
│ │ ├── PopupBox
│ │ │ ├── Generic.xaml
│ │ │ └── PopupBox.cs
│ │ ├── RadioButtonList
│ │ │ ├── Generic.xaml
│ │ │ └── RadioButtonList.cs
│ │ ├── SliderEx.cs
│ │ ├── SpinControl
│ │ │ ├── Generic.xaml
│ │ │ └── SpinControl.cs
│ │ ├── StackPanelEx.cs
│ │ ├── TextBlockEx
│ │ │ ├── Generic.xaml
│ │ │ └── TextBlockEx.cs
│ │ └── TextBoxEx.cs
│ ├── Converters
│ │ ├── AllMultiValueConverter.cs
│ │ ├── BoolToVisibilityConverter.cs
│ │ ├── BrushToColorConverter.cs
│ │ ├── ColorToBrushConverter.cs
│ │ ├── ColorToComponentConverter.cs
│ │ ├── ColorToHexConverter.cs
│ │ ├── ColorToStringConverter.cs
│ │ ├── DataErrorInfoConverter.cs
│ │ ├── DefinedColorToVisibilityConverter.cs
│ │ ├── DoubleToGridLengthConverter.cs
│ │ ├── EnumDescriptionConverter.cs
│ │ ├── EnumToBooleanConverter.cs
│ │ ├── EnumValuesConverter.cs
│ │ ├── FontFamilyConverter.cs
│ │ ├── GridLengthCollectionConverter.cs
│ │ ├── HueToColorConverter.cs
│ │ ├── NotifyDataErrorInfoConverter.cs
│ │ ├── NullToBoolConverter.cs
│ │ ├── NullToVisibilityConverter.cs
│ │ ├── ObjectToDoubleConverter.cs
│ │ ├── SelfProvider.cs
│ │ ├── TimeSpanToStringConverter.cs
│ │ ├── ValidationErrorsToStringConverter.cs
│ │ ├── ValueToBooleanConverter.cs
│ │ ├── ValueToVisibilityConverter.cs
│ │ └── ZeroToVisibilityConverter.cs
│ ├── DataGrid
│ │ ├── CellDefinitions
│ │ │ ├── CellDefinition.cs
│ │ │ ├── CellDefinitionFactory.cs
│ │ │ ├── CellDescriptor.cs
│ │ │ ├── CheckCellDefinition.cs
│ │ │ ├── ColorCellDefinition.cs
│ │ │ ├── SelectorCellDefinition.cs
│ │ │ ├── TemplateCellDefinition.cs
│ │ │ └── TextCellDefinition.cs
│ │ ├── CellRange.cs
│ │ ├── CellRefConverter.cs
│ │ ├── CellRef.cs
│ │ ├── ControlFactories
│ │ │ └── DataGridControlFactory.cs
│ │ ├── Cursors
│ │ │ ├── AutoFill.cur
│ │ │ ├── Cross.cur
│ │ │ ├── DownArrow.cur
│ │ │ └── RightArrow.cur
│ │ ├── DataGridCommands.cs
│ │ ├── DataGrid.cs
│ │ ├── DataGrid.md
│ │ ├── Definitions
│ │ │ ├── ColumnDefinition.cs
│ │ │ ├── PropertyDefinition.cs
│ │ │ ├── RowDefinition.cs
│ │ │ └── TemplateColumnDefinition.cs
│ │ ├── Generic.xaml
│ │ ├── ICellDefinitionFactory.cs
│ │ ├── IDataGridControlFactory.cs
│ │ ├── IDataGridOperator.cs
│ │ ├── Operators
│ │ │ ├── DataGridOperator.cs
│ │ │ ├── ListListOperator.cs
│ │ │ ├── ListOperator.cs
│ │ │ └── WrapItemsOperator.cs
│ │ └── VisibilityConverter.cs
│ ├── Dialogs
│ │ ├── AboutDialog.xaml
│ │ ├── AboutDialog.xaml.cs
│ │ ├── AboutViewModel.cs
│ │ ├── PropertyDialog.xaml
│ │ ├── PropertyDialog.xaml.cs
│ │ ├── Shell32
│ │ │ └── BrowseForFolderDialog.cs
│ │ ├── WizardDialog.xaml
│ │ └── WizardDialog.xaml.cs
│ ├── Extensions
│ │ └── ReflectionExtensions.cs
│ ├── Helpers
│ │ ├── AutoFiller.cs
│ │ ├── CaptureScreenshot.cs
│ │ ├── ColorHelper.cs
│ │ ├── FormattedTimeSpanParser.cs
│ │ ├── PasswordHelper.cs
│ │ ├── ReflectionMath.cs
│ │ ├── TimeSpanFormatter.cs
│ │ ├── TimeSpanParser.cs
│ │ └── TypeHelper.cs
│ ├── ItemsBag
│ │ ├── ItemsBag.cs
│ │ ├── ItemsBagPropertyDescriptor.cs
│ │ ├── ItemsBagTypeDescriptionProvider.cs
│ │ └── ItemsBagTypeDescriptor.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── PropertyGrid
│ │ ├── CategoryControlType.cs
│ │ ├── Generic.xaml
│ │ ├── Group.cs
│ │ ├── IPropertyGridControlFactory.cs
│ │ ├── IPropertyGridOperator.cs
│ │ ├── IPropertyGridOptions.cs
│ │ ├── PropertyControlFactoryOptions.cs
│ │ ├── PropertyConverter.cs
│ │ ├── PropertyGridControlFactory.cs
│ │ ├── PropertyGrid.cs
│ │ ├── PropertyGridOperator.cs
│ │ ├── PropertyItem.cs
│ │ ├── Tab.cs
│ │ └── TypeEditor.cs
│ ├── PropertyTools.snk
│ ├── PropertyTools.Wpf.csproj
│ ├── PropertyTools.Wpf.csproj.DotSettings
│ ├── Themes
│ │ └── Generic.xaml
│ ├── TreeListBox
│ │ ├── Common.xaml
│ │ ├── Generic.xaml
│ │ ├── InsertionAdorner.cs
│ │ ├── TreeListBoxAutomationPeer.cs
│ │ ├── TreeListBox.cs
│ │ ├── TreeListBoxDragDropHelper.cs
│ │ └── TreeListBoxItem.cs
│ └── Utilities
│ ├── BindingUtilities.cs
│ └── StringUtilities.cs
├── PropertyTools.Wpf.ExtendedToolkit
│ ├── ExtendedToolkitDataGridControlFactory.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── PropertyTools.Wpf.Extended.Toolkit.csproj
├── PropertyTools.Wpf.Tests
│ ├── Comparers
│ │ └── NaturalStringComparerTests.cs
│ ├── Converters
│ │ ├── ConverterTests.cs
│ │ └── ValueToBooleanConverterTests.cs
│ ├── Extensions
│ │ └── ReflectionExtensionsTests.cs
│ ├── Helpers
│ │ ├── ColorHelperTests.cs
│ │ ├── FormattedTimeSpanParserTests.cs
│ │ ├── ReflectionMathTests.cs
│ │ ├── TimeSpanFormatterTests.cs
│ │ ├── TimeSpanParserTests.cs
│ │ └── TypeHelperTests.cs
│ └── PropertyTools.Wpf.Tests.csproj
└── Settings.SourceAnalysis
99 directories, 595 files
控件介绍
控件 | 描述 | 状态 |
---|---|---|
PropertyGrid | 显示对象或对象集合的属性 | 稳定 |
DataGrid | 具有“Excel感觉”的数据网格(请注意,该控件不是虚拟化的) | 稳定 |
TreeListBox | 类似于TreeView的ListBox(支持多选和拖放) | 稳定 |
ColorPicker | 颜色选择器 | 稳定 |
RadioButtonList | 绑定到枚举的一组单选按钮 | 稳定 |
EnumMenuItem | 绑定到枚举的一组可选菜单项 | 稳定 |
EditableTextBlock | 可以转换为TextBox的TextBlock,适用于TreeView中的就地编辑 | 稳定 |
FilePicker | 带有浏览文件按钮的TextBox | 稳定 |
DirectoryPicker | 带有浏览目录按钮的TextBox | 稳定 |
DockPanelSplitter | DockPanels的分隔符 | 稳定 |
SpinControl | 数字上下微调控件 | 稳定 |
LinkBlock | TextBlock上的超链接 | 稳定 |
SliderEx | 在拖动滑块时调用IEditableObject.BeginEdit/EndEdit的滑块 | 稳定 |
TextBlockEx | 包含禁用状态样式的TextBlock | 稳定 |
PopupBox | 重新设计的ComboBox,可以将任何内容放入弹出视图 | 稳定 |
FormattingTextBox | 可以绑定格式化字符串的TextBox | 稳定 |
支持的框架
- Microsoft .NET 4.6.2或更高版本
- Microsoft .NET 6
支持的构建环境
- Visual Studio 2022
【实例截图】
文件清单
└── PropertyTools-0e2da56440ad24f58e5e743e6811e2f3f67ebd22
├── appveyor.yml
├── AUTHORS
├── CHANGELOG.md
├── CONTRIBUTORS
├── GitVersion.yml
├── Images
│ ├── AboutDialog.png
│ ├── ColorPicker2.png
│ ├── ColorPicker.png
│ ├── DataGrid.png
│ ├── icon.png
│ ├── PropertyDialog.png
│ ├── PropertyGrid.png
│ └── TreeListBox.png
├── LICENSE
├── README.md
└── Source
├── AssemblyInfo.cs
├── Examples
│ ├── Controls
│ │ ├── ControlDemos
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── ControlDemos.csproj
│ │ │ ├── ControlDemos.csproj.DotSettings
│ │ │ ├── Examples.xml
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Pages
│ │ │ │ ├── CheckMarkPage.xaml
│ │ │ │ ├── CheckMarkPage.xaml.cs
│ │ │ │ ├── ColorPickerPage.xaml
│ │ │ │ ├── ColorPickerPage.xaml.cs
│ │ │ │ ├── DirectoryPickerPage.xaml
│ │ │ │ ├── DirectoryPickerPage.xaml.cs
│ │ │ │ ├── DockPanelSplitterPage.xaml
│ │ │ │ ├── DockPanelSplitterPage.xaml.cs
│ │ │ │ ├── EditableTextBlockAndPropertyGridPage.xaml
│ │ │ │ ├── EditableTextBlockAndPropertyGridPage.xaml.cs
│ │ │ │ ├── EditableTextBlockPage.xaml
│ │ │ │ ├── EditableTextBlockPage.xaml.cs
│ │ │ │ ├── EnumMenuItemPage.xaml
│ │ │ │ ├── EnumMenuItemPage.xaml.cs
│ │ │ │ ├── FilePickerPage.xaml
│ │ │ │ ├── FilePickerPage.xaml.cs
│ │ │ │ ├── FormattingTextBoxPage.xaml
│ │ │ │ ├── FormattingTextBoxPage.xaml.cs
│ │ │ │ ├── HeaderedEntrySliderPage.xaml
│ │ │ │ ├── HeaderedEntrySliderPage.xaml.cs
│ │ │ │ ├── LinkBlockPage.xaml
│ │ │ │ ├── LinkBlockPage.xaml.cs
│ │ │ │ ├── PopupBoxPage.xaml
│ │ │ │ ├── PopupBoxPage.xaml.cs
│ │ │ │ ├── RadioButtonListPage.xaml
│ │ │ │ ├── RadioButtonListPage.xaml.cs
│ │ │ │ ├── SpinControlPage.xaml
│ │ │ │ ├── SpinControlPage.xaml.cs
│ │ │ │ ├── TextBlockExPage.xaml
│ │ │ │ └── TextBlockExPage.xaml.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── DialogDemos
│ │ ├── 3d.png
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── DialogDemos.csproj
│ │ ├── OptionsViewModel.cs
│ │ ├── Person.cs
│ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── pt32.png
│ │ ├── pt.png
│ │ ├── Settings.cs
│ │ ├── Window1.xaml
│ │ └── Window1.xaml.cs
│ ├── DataGrid
│ │ └── DataGridDemo
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── DataGridDemo.csproj
│ │ ├── DataGridDemo.csproj.DotSettings
│ │ ├── DataTypes
│ │ │ ├── MassConverter.cs
│ │ │ ├── Mass.cs
│ │ │ └── MassValueConverter.cs
│ │ ├── Examples
│ │ │ ├── AbsoluteWidthExample.xaml
│ │ │ ├── AbsoluteWidthExample.xaml.cs
│ │ │ ├── ArrayOfArrayExample.xaml
│ │ │ ├── ArrayOfArrayExample.xaml.cs
│ │ │ ├── ArrayOfDoubleExample.xaml
│ │ │ ├── ArrayOfDoubleExample.xaml.cs
│ │ │ ├── AutoFillDisabledExample.xaml
│ │ │ ├── AutoFillDisabledExample.xaml.cs
│ │ │ ├── AutoWidthExample.xaml
│ │ │ ├── AutoWidthExample.xaml.cs
│ │ │ ├── BackgroundExample.xaml
│ │ │ ├── BackgroundExample.xaml.cs
│ │ │ ├── CustomColumnsExample.xaml
│ │ │ ├── CustomColumnsExample.xaml.cs
│ │ │ ├── CustomHeaderExample.xaml
│ │ │ ├── CustomHeaderExample.xaml.cs
│ │ │ ├── CustomRowsExample.xaml
│ │ │ ├── CustomRowsExample.xaml.cs
│ │ │ ├── CustomTypeDescriptorExample.xaml
│ │ │ ├── CustomTypeDescriptorExample.xaml.cs
│ │ │ ├── DatatableExample.xaml
│ │ │ ├── DatatableExample.xaml.cs
│ │ │ ├── DisabledExample.xaml
│ │ │ ├── DisabledExample.xaml.cs
│ │ │ ├── EasyInsertExample.xaml
│ │ │ ├── EasyInsertExample.xaml.cs
│ │ │ ├── EnableByAttributeExample.xaml
│ │ │ ├── EnableByAttributeExample.xaml.cs
│ │ │ ├── EnableByPropertyExample.xaml
│ │ │ ├── EnableByPropertyExample.xaml.cs
│ │ │ ├── ExampleViewModel.cs
│ │ │ ├── ExceptionExample.xaml
│ │ │ ├── ExceptionExample.xaml.cs
│ │ │ ├── ExtendedToolkitExample.xaml
│ │ │ ├── ExtendedToolkitExample.xaml.cs
│ │ │ ├── GettingStartedExample.xaml
│ │ │ ├── GettingStartedExample.xaml.cs
│ │ │ ├── HeaderFormatStringExample.xaml
│ │ │ ├── HeaderFormatStringExample.xaml.cs
│ │ │ ├── InputDirectionExample.xaml
│ │ │ ├── InputDirectionExample.xaml.cs
│ │ │ ├── ListOfIntExample.xaml
│ │ │ ├── ListOfIntExample.xaml.cs
│ │ │ ├── ListOfList
│ │ │ │ ├── ListOfListOfBoolExample.xaml
│ │ │ │ ├── ListOfListOfBoolExample.xaml.cs
│ │ │ │ ├── ListOfListOfColorExample.xaml
│ │ │ │ ├── ListOfListOfColorExample.xaml.cs
│ │ │ │ ├── ListOfListOfFruitExample.xaml
│ │ │ │ ├── ListOfListOfFruitExample.xaml.cs
│ │ │ │ ├── ListOfListOfIntExample.xaml
│ │ │ │ ├── ListOfListOfIntExample.xaml.cs
│ │ │ │ ├── ListOfListOfMassExample.xaml
│ │ │ │ └── ListOfListOfMassExample.xaml.cs
│ │ │ ├── ListOfMassExample.xaml
│ │ │ ├── ListOfMassExample.xaml.cs
│ │ │ ├── ListOfObjectExample.xaml
│ │ │ ├── ListOfObjectExample.xaml.cs
│ │ │ ├── ListOfPlainObjectCustomColumnsExample.xaml
│ │ │ ├── ListOfPlainObjectCustomColumnsExample.xaml.cs
│ │ │ ├── ListOfPlainObjectExample.xaml
│ │ │ ├── ListOfPlainObjectExample.xaml.cs
│ │ │ ├── ListOfStringExample.xaml
│ │ │ ├── ListOfStringExample.xaml.cs
│ │ │ ├── ListOfVectorExample.xaml
│ │ │ ├── ListOfVectorExample.xaml.cs
│ │ │ ├── NaturalSortingExample.xaml
│ │ │ ├── NaturalSortingExample.xaml.cs
│ │ │ ├── NullableExample.xaml
│ │ │ ├── NullableExample.xaml.cs
│ │ │ ├── NullExample.xaml
│ │ │ ├── NullExample.xaml.cs
│ │ │ ├── ObservableCollectionOfDoubleExample.xaml
│ │ │ ├── ObservableCollectionOfDoubleExample.xaml.cs
│ │ │ ├── ObservableCollectionOfExampleObjectExample.xaml
│ │ │ ├── ObservableCollectionOfExampleObjectExample.xaml.cs
│ │ │ ├── ObservableCollectionOfMassExample.xaml
│ │ │ ├── ObservableCollectionOfMassExample.xaml.cs
│ │ │ ├── ObservableCollectionOfStringExample.xaml
│ │ │ ├── ObservableCollectionOfStringExample.xaml.cs
│ │ │ ├── RelativeWidthExample.xaml
│ │ │ ├── RelativeWidthExample.xaml.cs
│ │ │ ├── ScrollViewerExample.xaml
│ │ │ ├── ScrollViewerExample.xaml.cs
│ │ │ ├── SelectedItemsExample.xaml
│ │ │ ├── SelectedItemsExample.xaml.cs
│ │ │ ├── SelectorExample.xaml
│ │ │ ├── SelectorExample.xaml.cs
│ │ │ ├── StandardDataGrid
│ │ │ │ ├── GettingStartedExample.xaml
│ │ │ │ └── GettingStartedExample.xaml.cs
│ │ │ ├── SyncTableExample.xaml
│ │ │ ├── SyncTableExample.xaml.cs
│ │ │ ├── TableExample.xaml
│ │ │ ├── TableExample.xaml.cs
│ │ │ ├── TemplateExample.xaml
│ │ │ ├── TemplateExample.xaml.cs
│ │ │ ├── ThreadExample.xaml
│ │ │ ├── ThreadExample.xaml.cs
│ │ │ ├── ValidationExampleWindow.xaml
│ │ │ ├── ValidationExampleWindow.xaml.cs
│ │ │ ├── VectorExample.xaml
│ │ │ ├── VectorExample.xaml.cs
│ │ │ ├── WpfDataGridExample.xaml
│ │ │ ├── WpfDataGridExample.xaml.cs
│ │ │ └── WrapItems
│ │ │ ├── ArrayOfObjectExample.xaml
│ │ │ ├── ArrayOfObjectExample.xaml.cs
│ │ │ ├── BackgroundBindingSourceExample.xaml
│ │ │ ├── BackgroundBindingSourceExample.xaml.cs
│ │ │ ├── IsEnabledBindingSourceExample.xaml
│ │ │ ├── IsEnabledBindingSourceExample.xaml.cs
│ │ │ ├── MultitypeMatrixExample.xaml
│ │ │ ├── MultitypeMatrixExample.xaml.cs
│ │ │ ├── ObservableCollectionOfObjectExample.xaml
│ │ │ ├── ObservableCollectionOfObjectExample.xaml.cs
│ │ │ ├── WrapItemsExample.xaml
│ │ │ ├── WrapItemsExample.xaml.cs
│ │ │ ├── WrapItemsOfMassExample.xaml
│ │ │ └── WrapItemsOfMassExample.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Model
│ │ │ ├── ExampleObject.cs
│ │ │ ├── Fruit.cs
│ │ │ ├── PlainOldObject.cs
│ │ │ ├── StandardCollections.cs
│ │ │ └── ValidatableObject.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── ItemsBag
│ │ └── ItemsBagDemo
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── ItemsBagDemo.csproj
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Model.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── PropertyGrid
│ │ ├── CustomFactoryDemo
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── Attributes
│ │ │ │ └── ImportantAttribute.cs
│ │ │ ├── CustomFactoryDemo.csproj
│ │ │ ├── Factories
│ │ │ │ ├── CustomPropertyGridControlFactory.cs
│ │ │ │ ├── CustomPropertyGridOperator.cs
│ │ │ │ └── ImportantPropertyItem.cs
│ │ │ ├── Model
│ │ │ │ ├── Range.cs
│ │ │ │ └── TestObject.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ViewModels
│ │ │ │ └── MainViewModel.cs
│ │ │ └── Views
│ │ │ ├── MainWindow.xaml
│ │ │ └── MainWindow.xaml.cs
│ │ ├── PropertyGridDemo
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── Converters
│ │ │ │ ├── BigIntegerConverter.cs
│ │ │ │ ├── ComplexConverter.cs
│ │ │ │ ├── HexConverter.cs
│ │ │ │ ├── MassConverter.cs
│ │ │ │ └── MultiValueToStringConverter.cs
│ │ │ ├── CustomControlFactory.cs
│ │ │ ├── CustomOperator.cs
│ │ │ ├── DataTypes
│ │ │ │ ├── Length.cs
│ │ │ │ ├── Mass.cs
│ │ │ │ ├── TestEnumeration.cs
│ │ │ │ └── UnitUtilities.cs
│ │ │ ├── Example.cs
│ │ │ ├── Examples
│ │ │ │ ├── AdvancedTypesExample.cs
│ │ │ │ ├── AutomaticDisplayNamesExample.cs
│ │ │ │ ├── AutoUpdateTextAttributeExample.cs
│ │ │ │ ├── BrowsableAttributeExample.cs
│ │ │ │ ├── BrowsableFalseAttributeExample.cs
│ │ │ │ ├── BrowsableTrueAttributeExample.cs
│ │ │ │ ├── CategoryAttributeExample.cs
│ │ │ │ ├── CheckableItemsAttributeExample.cs
│ │ │ │ ├── CollectionsExample.cs
│ │ │ │ ├── CommandExample.cs
│ │ │ │ ├── CommentAttributeExample.cs
│ │ │ │ ├── ContentAttributeExample.cs
│ │ │ │ ├── ConverterAttributeExample.cs
│ │ │ │ ├── DataAnnotationsExample.cs
│ │ │ │ ├── DataErrorInfoExample.cs
│ │ │ │ ├── DataTypeAttributeExample.cs
│ │ │ │ ├── DescriptionAttributeExample.cs
│ │ │ │ ├── DictionaryExample.cs
│ │ │ │ ├── DirectoryPathAttributeExample.cs
│ │ │ │ ├── DisplayNameAttributeExample.cs
│ │ │ │ ├── EditableAttributeExample.cs
│ │ │ │ ├── EnableByRadioButtonAttributeExample.cs
│ │ │ │ ├── EnabledByAttributeExample.cs
│ │ │ │ ├── EnumsExample.cs
│ │ │ │ ├── ExceptionExample.cs
│ │ │ │ ├── FilePathAttributeExample.cs
│ │ │ │ ├── FillTabAttributeExample.cs
│ │ │ │ ├── FormatStringAttributeExample.cs
│ │ │ │ ├── HeaderPlacementAttributeExample.cs
│ │ │ │ ├── ImageSourceExample.cs
│ │ │ │ ├── IndentationLevelAttributeExample.cs
│ │ │ │ ├── ItemsSourcePropertyExample.cs
│ │ │ │ ├── MetaDataTypeExample.cs
│ │ │ │ ├── NotifyDataErrorInfoExample.cs
│ │ │ │ ├── NotifyDataErrorInfoSeverityExample.cs
│ │ │ │ ├── OptionalAttributeExample.cs
│ │ │ │ ├── PasswordExample.cs
│ │ │ │ ├── PerformanceExample.cs
│ │ │ │ ├── ReadOnlyAttributeExample.cs
│ │ │ │ ├── sheep.png
│ │ │ │ ├── SimpleTypesExample.cs
│ │ │ │ ├── SlidableAttributeExample.cs
│ │ │ │ ├── SpinnableAttributeExample.cs
│ │ │ │ ├── SubClassExample.cs
│ │ │ │ └── VisibleByAttributeExample.cs
│ │ │ ├── Examples.cs
│ │ │ ├── FodyWeavers.xml
│ │ │ ├── FodyWeavers.xsd
│ │ │ ├── Images
│ │ │ │ ├── category.png
│ │ │ │ ├── chart.png
│ │ │ │ ├── error.png
│ │ │ │ ├── home2.png
│ │ │ │ ├── home3.png
│ │ │ │ ├── home.png
│ │ │ │ ├── lightbulb1.png
│ │ │ │ ├── lightbulb.png
│ │ │ │ └── sheep.png
│ │ │ ├── LengthConverter.cs
│ │ │ ├── MainViewModel.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── PropertyGridDemo.csproj
│ │ │ ├── PropertyGridExampleAttribute.cs
│ │ │ └── Validation
│ │ │ └── ValidationResultEx.cs
│ │ ├── SimpleDemo
│ │ │ ├── app.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindowViewModel.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── MassConverter.cs
│ │ │ ├── Mass.cs
│ │ │ ├── Person.cs
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── SimpleDemo.csproj
│ │ └── UndoRedoDemo
│ │ ├── AppBootstrapper.cs
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── Core
│ │ │ ├── DelegateTraceListener.cs
│ │ │ ├── UndoableCollection.cs
│ │ │ └── UndoableObject.cs
│ │ ├── Model
│ │ │ └── Measurement.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── UndoRedo
│ │ │ ├── CollectionChangeUndoRedoAction.cs
│ │ │ ├── IUndoRedoAction.cs
│ │ │ ├── PropertyChangeUndoRedoAction.cs
│ │ │ └── UndoRedoService.cs
│ │ ├── UndoRedoDemo.csproj
│ │ ├── ViewModels
│ │ │ └── ShellViewModel.cs
│ │ └── Views
│ │ ├── ShellView.xaml
│ │ └── TextBoxBehaviors.cs
│ └── TreeListBox
│ ├── AddRemoveDemo
│ │ ├── AddRemoveDemo.csproj
│ │ ├── App.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── MainWindowViewModel.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Node.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── DirectoryDemo
│ │ ├── app.config
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── DirectoryDemo.csproj
│ │ ├── DirectoryViewModel.cs
│ │ ├── folder.png
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ └── TreeListBoxDemo
│ ├── app.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── folder.png
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Model
│ │ ├── CompositeNode.cs
│ │ └── Node.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── TreeListBoxDemo.csproj
│ └── ViewModel
│ ├── MainViewModel.cs
│ ├── NodeViewModel.cs
│ └── Observable.cs
├── PropertyTools
│ ├── DataAnnotations
│ │ ├── AutoUpdateTextAttribute.cs
│ │ ├── BasePathPropertyAttribute.cs
│ │ ├── BrowsableAttribute.cs
│ │ ├── CategoryAttribute.cs
│ │ ├── CheckableItemsAttribute.cs
│ │ ├── Column.cs
│ │ ├── ColumnsPropertyAttribute.cs
│ │ ├── CommentAttribute.cs
│ │ ├── ContentAttribute.cs
│ │ ├── ConverterAttribute.cs
│ │ ├── DefaultExtensionPropertyAttribute.cs
│ │ ├── DescriptionAttribute.cs
│ │ ├── DirectoryPathAttribute.cs
│ │ ├── DisplayMemberPathAttribute.cs
│ │ ├── DisplayNameAttribute.cs
│ │ ├── EasyInsertAttribute.cs
│ │ ├── EditableAttribute.cs
│ │ ├── EnableByAttribute.cs
│ │ ├── EnableByRadioButtonAttribute.cs
│ │ ├── FillTabAttribute.cs
│ │ ├── FilterPropertyAttribute.cs
│ │ ├── FontAttribute.cs
│ │ ├── FontFamilySelectorAttribute.cs
│ │ ├── FontPreviewAttribute.cs
│ │ ├── FormatStringAttribute.cs
│ │ ├── HeaderPlacementAttribute.cs
│ │ ├── HeaderPlacement.cs
│ │ ├── HeightAttribute.cs
│ │ ├── HorizontalAlignmentAttribute.cs
│ │ ├── HorizontalAlignment.cs
│ │ ├── IndentationLevelAttribute.cs
│ │ ├── InputDirectionAttribute.cs
│ │ ├── InputDirection.cs
│ │ ├── InputFilePathAttribute.cs
│ │ ├── ItemHeaderPropertyAttribute.cs
│ │ ├── ItemsSourcePropertyAttribute.cs
│ │ ├── ListAttribute.cs
│ │ ├── ListItemItemsSourcePropertyAttribute.cs
│ │ ├── OptionalAttribute.cs
│ │ ├── OutputFilePathAttribute.cs
│ │ ├── ReadOnlyAttribute.cs
│ │ ├── ResettableAttribute.cs
│ │ ├── SelectedValuePathAttribute.cs
│ │ ├── SelectorStyleAttribute.cs
│ │ ├── SelectorStyle.cs
│ │ ├── SlidableAttribute.cs
│ │ ├── SortIndexAttribute.cs
│ │ ├── SpinnableAttribute.cs
│ │ ├── VisibleByAttribute.cs
│ │ ├── WidePropertyAttribute.cs
│ │ └── WidthAttribute.cs
│ ├── DragDrop
│ │ ├── DropPosition.cs
│ │ ├── IDragSource.cs
│ │ └── IDropTarget.cs
│ ├── Observable
│ │ └── Observable.cs
│ ├── PropertyTools.csproj
│ ├── PropertyTools.csproj.DotSettings
│ └── PropertyTools.snk
├── PropertyTools.AppVeyor.sln
├── PropertyTools.sln
├── PropertyTools.sln.DotSettings
├── PropertyTools.snk
├── PropertyTools.Wpf
│ ├── Behaviors
│ │ ├── ScreenGrab.cs
│ │ └── WebBrowserBehavior.cs
│ ├── Chrome
│ │ ├── ButtonChrome.cs
│ │ └── SystemDropShadowChrome.cs
│ ├── CommandBindings
│ │ ├── DelegateCommandBinding.cs
│ │ └── DelegateCommandBinding{T}.cs
│ ├── Commands
│ │ └── DelegateCommand.cs
│ ├── Comparers
│ │ ├── EnumerableComparer{T}.cs
│ │ ├── ISortDescriptionComparer.cs
│ │ ├── NaturalObjectComparer.cs
│ │ ├── NaturalSortDescriptionComparer.cs
│ │ └── NaturalStringComparer.cs
│ ├── Controls
│ │ ├── Bitmap.cs
│ │ ├── CheckMark
│ │ │ ├── CheckMark.cs
│ │ │ └── Generic.xaml
│ │ ├── ColorPicker
│ │ │ ├── ColorPicker.cs
│ │ │ ├── ColorPickerPanel.cs
│ │ │ ├── ColorPickerPanelStrings.cs
│ │ │ ├── ColorPicker.png
│ │ │ ├── ColorSlider.cs
│ │ │ ├── Generic.xaml
│ │ │ ├── HsvControl.cs
│ │ │ ├── Hsv.png
│ │ │ └── SpectrumSlider.cs
│ │ ├── DockPanelSplitter
│ │ │ ├── DockPanelSplitter.cs
│ │ │ └── Generic.xaml
│ │ ├── EditableTextBlock.cs
│ │ ├── EnumMenuItem.cs
│ │ ├── FilePicker
│ │ │ ├── DirectoryPicker.cs
│ │ │ ├── FilePicker.cs
│ │ │ ├── Generic.xaml
│ │ │ ├── IFileDialogService.cs
│ │ │ └── IFolderBrowserDialogService.cs
│ │ ├── FormattingTextBox.cs
│ │ ├── HeaderedEntrySlider
│ │ │ ├── Generic.xaml
│ │ │ └── HeaderedEntrySlider.cs
│ │ ├── LinkBlock.cs
│ │ ├── PopupBox
│ │ │ ├── Generic.xaml
│ │ │ └── PopupBox.cs
│ │ ├── RadioButtonList
│ │ │ ├── Generic.xaml
│ │ │ └── RadioButtonList.cs
│ │ ├── SliderEx.cs
│ │ ├── SpinControl
│ │ │ ├── Generic.xaml
│ │ │ └── SpinControl.cs
│ │ ├── StackPanelEx.cs
│ │ ├── TextBlockEx
│ │ │ ├── Generic.xaml
│ │ │ └── TextBlockEx.cs
│ │ └── TextBoxEx.cs
│ ├── Converters
│ │ ├── AllMultiValueConverter.cs
│ │ ├── BoolToVisibilityConverter.cs
│ │ ├── BrushToColorConverter.cs
│ │ ├── ColorToBrushConverter.cs
│ │ ├── ColorToComponentConverter.cs
│ │ ├── ColorToHexConverter.cs
│ │ ├── ColorToStringConverter.cs
│ │ ├── DataErrorInfoConverter.cs
│ │ ├── DefinedColorToVisibilityConverter.cs
│ │ ├── DoubleToGridLengthConverter.cs
│ │ ├── EnumDescriptionConverter.cs
│ │ ├── EnumToBooleanConverter.cs
│ │ ├── EnumValuesConverter.cs
│ │ ├── FontFamilyConverter.cs
│ │ ├── GridLengthCollectionConverter.cs
│ │ ├── HueToColorConverter.cs
│ │ ├── NotifyDataErrorInfoConverter.cs
│ │ ├── NullToBoolConverter.cs
│ │ ├── NullToVisibilityConverter.cs
│ │ ├── ObjectToDoubleConverter.cs
│ │ ├── SelfProvider.cs
│ │ ├── TimeSpanToStringConverter.cs
│ │ ├── ValidationErrorsToStringConverter.cs
│ │ ├── ValueToBooleanConverter.cs
│ │ ├── ValueToVisibilityConverter.cs
│ │ └── ZeroToVisibilityConverter.cs
│ ├── DataGrid
│ │ ├── CellDefinitions
│ │ │ ├── CellDefinition.cs
│ │ │ ├── CellDefinitionFactory.cs
│ │ │ ├── CellDescriptor.cs
│ │ │ ├── CheckCellDefinition.cs
│ │ │ ├── ColorCellDefinition.cs
│ │ │ ├── SelectorCellDefinition.cs
│ │ │ ├── TemplateCellDefinition.cs
│ │ │ └── TextCellDefinition.cs
│ │ ├── CellRange.cs
│ │ ├── CellRefConverter.cs
│ │ ├── CellRef.cs
│ │ ├── ControlFactories
│ │ │ └── DataGridControlFactory.cs
│ │ ├── Cursors
│ │ │ ├── AutoFill.cur
│ │ │ ├── Cross.cur
│ │ │ ├── DownArrow.cur
│ │ │ └── RightArrow.cur
│ │ ├── DataGridCommands.cs
│ │ ├── DataGrid.cs
│ │ ├── DataGrid.md
│ │ ├── Definitions
│ │ │ ├── ColumnDefinition.cs
│ │ │ ├── PropertyDefinition.cs
│ │ │ ├── RowDefinition.cs
│ │ │ └── TemplateColumnDefinition.cs
│ │ ├── Generic.xaml
│ │ ├── ICellDefinitionFactory.cs
│ │ ├── IDataGridControlFactory.cs
│ │ ├── IDataGridOperator.cs
│ │ ├── Operators
│ │ │ ├── DataGridOperator.cs
│ │ │ ├── ListListOperator.cs
│ │ │ ├── ListOperator.cs
│ │ │ └── WrapItemsOperator.cs
│ │ └── VisibilityConverter.cs
│ ├── Dialogs
│ │ ├── AboutDialog.xaml
│ │ ├── AboutDialog.xaml.cs
│ │ ├── AboutViewModel.cs
│ │ ├── PropertyDialog.xaml
│ │ ├── PropertyDialog.xaml.cs
│ │ ├── Shell32
│ │ │ └── BrowseForFolderDialog.cs
│ │ ├── WizardDialog.xaml
│ │ └── WizardDialog.xaml.cs
│ ├── Extensions
│ │ └── ReflectionExtensions.cs
│ ├── Helpers
│ │ ├── AutoFiller.cs
│ │ ├── CaptureScreenshot.cs
│ │ ├── ColorHelper.cs
│ │ ├── FormattedTimeSpanParser.cs
│ │ ├── PasswordHelper.cs
│ │ ├── ReflectionMath.cs
│ │ ├── TimeSpanFormatter.cs
│ │ ├── TimeSpanParser.cs
│ │ └── TypeHelper.cs
│ ├── ItemsBag
│ │ ├── ItemsBag.cs
│ │ ├── ItemsBagPropertyDescriptor.cs
│ │ ├── ItemsBagTypeDescriptionProvider.cs
│ │ └── ItemsBagTypeDescriptor.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── PropertyGrid
│ │ ├── CategoryControlType.cs
│ │ ├── Generic.xaml
│ │ ├── Group.cs
│ │ ├── IPropertyGridControlFactory.cs
│ │ ├── IPropertyGridOperator.cs
│ │ ├── IPropertyGridOptions.cs
│ │ ├── PropertyControlFactoryOptions.cs
│ │ ├── PropertyConverter.cs
│ │ ├── PropertyGridControlFactory.cs
│ │ ├── PropertyGrid.cs
│ │ ├── PropertyGridOperator.cs
│ │ ├── PropertyItem.cs
│ │ ├── Tab.cs
│ │ └── TypeEditor.cs
│ ├── PropertyTools.snk
│ ├── PropertyTools.Wpf.csproj
│ ├── PropertyTools.Wpf.csproj.DotSettings
│ ├── Themes
│ │ └── Generic.xaml
│ ├── TreeListBox
│ │ ├── Common.xaml
│ │ ├── Generic.xaml
│ │ ├── InsertionAdorner.cs
│ │ ├── TreeListBoxAutomationPeer.cs
│ │ ├── TreeListBox.cs
│ │ ├── TreeListBoxDragDropHelper.cs
│ │ └── TreeListBoxItem.cs
│ └── Utilities
│ ├── BindingUtilities.cs
│ └── StringUtilities.cs
├── PropertyTools.Wpf.ExtendedToolkit
│ ├── ExtendedToolkitDataGridControlFactory.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── PropertyTools.Wpf.Extended.Toolkit.csproj
├── PropertyTools.Wpf.Tests
│ ├── Comparers
│ │ └── NaturalStringComparerTests.cs
│ ├── Converters
│ │ ├── ConverterTests.cs
│ │ └── ValueToBooleanConverterTests.cs
│ ├── Extensions
│ │ └── ReflectionExtensionsTests.cs
│ ├── Helpers
│ │ ├── ColorHelperTests.cs
│ │ ├── FormattedTimeSpanParserTests.cs
│ │ ├── ReflectionMathTests.cs
│ │ ├── TimeSpanFormatterTests.cs
│ │ ├── TimeSpanParserTests.cs
│ │ └── TypeHelperTests.cs
│ └── PropertyTools.Wpf.Tests.csproj
└── Settings.SourceAnalysis
99 directories, 595 files
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论