From 7e2d5be3cd60a4cc005ff04644e6971ab881f1fd Mon Sep 17 00:00:00 2001
From: GG Z <903524121@qq.com>
Date: Sun, 22 Feb 2026 20:03:42 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Melskin/Controls/Button.xaml | 1 +
Melskin/Controls/Card.xaml | 37 +-
Melskin/Controls/CheckBox.xaml | 2 +-
Melskin/Controls/ChooseBox.xaml | 6 +-
Melskin/Controls/GroupBox.xaml | 1 -
Melskin/Controls/MultiComboBox.xaml | 3 +-
Melskin/Controls/MultiComboBox.xaml.cs | 2 +-
Melskin/Controls/ProgressBar.xaml | 393 ++-
Melskin/Controls/Slider.xaml | 17 +-
Melskin/Controls/StepBar.xaml | 121 +
Melskin/Controls/StepBar.xaml.cs | 124 +
Melskin/Controls/TextBox.xaml | 1 +
Melskin/Controls/TutorialPrompt.xaml | 149 +
Melskin/Controls/TutorialPrompt.xaml.cs | 147 +
.../Internal/ProgressToAngleConverter.cs | 62 +
Melskin/Melskin.csproj | 2 +-
Melskin/Themes/Dark.xaml | 6 +-
Melskin/Themes/Styles.xaml | 2 +
MelskinTest/MainWindow.xaml | 62 +-
MelskinTest/MainWindow.xaml.cs | 45 +-
ShrlAlgo.Addin.Test/ActionWindow.xaml.cs | 1 -
ShrlAlgo.Addin.Test/AddWallTypeParam.cs | 31 -
ShrlAlgo.Addin.Test/Data.cs | 2435 -----------------
ShrlAlgo.Addin.Test/FluentAddin.cs | 396 ---
ShrlAlgo.Addin.Test/GASInstancesCreator.cs | 320 ---
ShrlAlgo.Addin.Test/GlobalUsings.cs | 5 +-
ShrlAlgo.Addin.Test/InstancesCreator.cs | 69 -
ShrlAlgo.Addin.Test/ModifySystemTypeCmd.cs | 144 +-
.../PlaceInstanceByCircleCmd.cs | 65 -
ShrlAlgo.Addin.Test/RevitAddin.cs | 293 +-
.../ShrlAlgo.Addin.Test.csproj | 2 +-
ShrlAlgo.Addin.Test/TempCmd.cs | 307 ---
.../CivilConnectionCmd.cs | 0
.../CreateOpeningsCmd.cs | 0
.../CreateOpeningsView.xaml | 0
.../CreateOpeningsView.xaml.cs | 0
.../CreateOpeningsViewModel.cs | 0
.../{RvCivil => ArchStru}/ModelSplitterCmd.cs | 0
.../{RvCivil => ArchStru}/PlacementType.cs | 0
.../ResolveCivilConnectView.xaml | 0
.../ResolveCivilConnectView.xaml.cs | 0
.../ResolveCivilConnectViewModel.cs | 2 +-
.../{RvCivil => ArchStru}/Rotation.cs | 0
.../{RvCivil => ArchStru}/SlopedFloorCmd.cs | 0
.../SplitComsByLevelCmd.cs | 2 +-
.../{RvCivil => ArchStru}/SplitFloorCmd.cs | 0
.../{RvCivil => ArchStru}/WallFinishesCmd.cs | 0
.../WallFinishesView.xaml | 0
.../WallFinishesView.xaml.cs | 0
.../WallFinishesViewModel.cs | 0
.../ModelCheckCmd.cs | 0
.../ModelCheckView.xaml | 17 +-
.../ModelCheckView.xaml.cs | 0
.../ModelCheckViewModel.cs | 115 +-
.../Common/Assists/WinDialogAssist.cs | 12 +-
.../Controls}/ColorPickerViewModel.cs | 2 +-
.../Controls}/ColorPickerWin.xaml | 35 +-
.../Controls}/ColorPickerWin.xaml.cs | 2 +-
.../Controls}/MessageModel.cs | 2 +-
.../Controls}/MessageViewModel.cs | 2 +-
.../Controls}/MessageWin.xaml | 31 +-
.../Controls}/MessageWin.xaml.cs | 2 +-
.../Controls}/NavigateViewViewModel.cs | 2 +-
.../Controls}/NavigateViewWin.xaml | 25 +-
.../Controls}/NavigateViewWin.xaml.cs | 2 +-
.../Controls}/ProcessEventHandler.cs | 2 +-
.../Controls}/ProgressBarManager.cs | 2 +-
.../Controls}/ProgressMonitorView.xaml | 7 +-
.../Controls}/ProgressMonitorView.xaml.cs | 2 +-
.../Controls}/ProgressMonitorViewModel.cs | 2 +-
.../{RvCivil => Deco}/BricksFinishesCmd.cs | 0
.../{RvCivil => Deco}/BricksFinishesView.xaml | 0
.../BricksFinishesView.xaml.cs | 0
.../BricksFinishesViewModel.cs | 0
.../{RvCivil => Deco}/FloorFinishesCmd.cs | 0
.../{RvCivil => Deco}/FloorFinishesView.xaml | 0
.../FloorFinishesView.xaml.cs | 0
.../FloorFinishesViewModel.cs | 0
.../AdaptiveMEPTagCmd.cs | 5 +-
.../{RvView => DrawSheet}/AlignTagsCmd.cs | 7 +-
.../{RvView => DrawSheet}/AlignTagsView.xaml | 6 +-
.../AlignTagsView.xaml.cs | 6 +-
.../AlignTagsViewModel.cs | 5 +-
.../{RvView => DrawSheet}/ArrangeTagsCmd.cs | 36 +-
.../CivilViewFilterCmd.cs | 5 +-
.../DimensionBy2LineCmd.cs | 5 +-
.../ElementControlDock.xaml | 2 +-
.../ElementControlDock.xaml.cs | 5 +-
.../ElementsControlCmd.cs | 6 +-
.../ExportSchedulesCmd.cs | 5 +-
.../{RvView => DrawSheet}/PanelScheduleCmd.cs | 5 +-
.../QuickSelectionCmd.cs | 9 +-
.../QuickSelectionView.xaml | 3 +-
.../DrawSheet/QuickSelectionView.xaml.cs | 20 +
.../QuickViewSectionCmd.cs | 5 +-
.../QuickViewSectionView.xaml | 6 +-
.../QuickViewSectionView.xaml.cs | 6 +-
.../QuickViewSectionViewModel.cs | 6 +-
.../SectionBoxControllerCmd.cs | 5 +-
.../SectionBoxControllerView.xaml | 11 +-
.../SectionBoxControllerView.xaml.cs | 6 +-
.../SectionBoxControllerViewModel.cs | 0
.../SwitchBackgroundCmd.cs | 6 +-
.../{RvView => DrawSheet}/SystemDisplayCmd.cs | 8 +-
.../SystemDisplayView.xaml | 7 +-
.../SystemDisplayView.xaml.cs | 6 +-
.../SystemDisplayViewModel.cs | 2 +-
.../{RvView => DrawSheet}/UserDisplayStyle.cs | 0
.../UserViewDetailLevel.cs | 0
.../UserViewDiscipline.cs | 0
.../{RvView => DrawSheet}/UserViewType.cs | 0
.../{RvView => DrawSheet}/ViewManagerCmd.cs | 7 +-
.../{RvView => DrawSheet}/ViewManagerModel.cs | 5 +-
.../ViewManagerView.xaml | 14 +-
.../ViewManagerView.xaml.cs | 6 +-
.../ViewManagerViewModel.cs | 18 +-
.../VisibilityControlCmd.cs | 7 +-
.../{RvView => DrawSheet}/VisibilityView.xaml | 6 +-
.../VisibilityView.xaml.cs | 6 +-
.../VisibilityViewModel.cs | 5 +-
.../{UIRibbon => Entry}/DrawingViewApp.cs | 30 +-
.../{UIRibbon => Entry}/FamilyApp.cs | 15 +-
.../{UIRibbon => Entry}/ModifyTabApp.cs | 67 +-
.../{UIRibbon => Entry}/RvApp.cs | 51 +-
.../{UIRibbon => Entry}/TabManagerApp.cs | 5 +-
.../FamMaster/CutGeologyByLoopCmd.cs | 124 +
.../{RvFamily => FamMaster}/ExplodeDwgCmd.cs | 6 +-
.../FamilyLibraryCmd.cs | 6 +-
.../FamilyLibraryView.xaml | 5 +-
.../FamilyLibraryView.xaml.cs | 7 +-
.../FamilyLibraryViewModel.cs | 6 +-
.../FamilyModel.cs | 0
.../FamilyProcessorCmd.cs | 7 +-
.../FamilyProcessorView.xaml | 5 +-
.../FamilyProcessorView.xaml.cs | 6 +-
.../FamilyProcessorViewModel.cs | 11 +-
.../LoadedFamilyDropHandler.cs | 7 +-
.../ModelByCurveCreatorCmd.cs | 6 +-
.../ModelByCurveCreatorView.xaml | 10 +-
.../ModelByCurveCreatorView.xaml.cs | 6 +-
.../ModelByCurveCreatorViewModel.cs | 0
.../MoveElementByRelationshipCmd.cs | 6 +-
.../PlaceInstanceByCircleCmd.cs | 6 +-
.../ReplaceInstanceCmd.cs | 6 +-
.../SplitImportInstanceCmd.cs | 6 +-
.../UpgradeFamilyCmd.cs | 7 +-
.../AlignModelElement.cs | 6 +-
.../{RvCommon => General}/AlignType.cs | 6 +-
.../{RvCommon => General}/AutoSaveCmd.cs | 8 +-
.../{RvCommon => General}/AutoSaveView.xaml | 5 +-
.../AutoSaveView.xaml.cs | 6 +-
.../AutoSaveViewModel.cs | 0
.../DetailSelectFiltersView.xaml | 7 +-
.../DetailSelectFiltersView.xaml.cs | 6 +-
.../DetailSelectFiltersViewModel.cs | 0
.../{RvCommon => General}/PureModelCmd.cs | 6 +-
.../SeparateModelCmd.cs | 7 +-
.../SeparateModelViewModel.cs | 6 +-
.../SeparateModelWin.xaml | 6 +-
.../SeparateModelWin.xaml.cs | 6 +-
.../{RvMEP => Mep}/AddInsulationCmd.cs | 5 +-
.../{RvMEP => Mep}/AddInsulationView.xaml | 6 +-
.../{RvMEP => Mep}/AddInsulationView.xaml.cs | 6 +-
.../{RvMEP => Mep}/AddInsulationViewModel.cs | 13 +-
.../Mep}/AlignMEPCurvesToSlabCmd.cs | 2 +-
.../{RvMEP => Mep}/AnyConnectCmd.cs | 5 +-
.../{RvMEP => Mep}/AnyConnectView.xaml | 7 +-
.../{RvMEP => Mep}/AnyConnectView.xaml.cs | 6 +-
.../{RvMEP => Mep}/AnyConnectViewModel.cs | 0
.../{RvMEP => Mep}/ArrangeMEPCurveCmd.cs | 7 +-
.../{RvMEP => Mep}/ArrangeMEPCurveView.xaml | 4 +-
.../ArrangeMEPCurveView.xaml.cs | 6 +-
.../ArrangeMEPCurveViewModel.cs | 10 +-
.../AutoConnectOptionsView.xaml | 7 +-
.../AutoConnectOptionsView.xaml.cs | 6 +-
.../{RvMEP => Mep}/BloomConnectorCmd.cs | 6 +-
.../{RvMEP => Mep}/BreakMEPCurveCmd.cs | 6 +-
.../{RvMEP => Mep}/CableLayoutCmd.cs | 6 +-
.../{RvMEP => Mep}/CableLayoutView.xaml | 7 +-
.../{RvMEP => Mep}/CableLayoutView.xaml.cs | 6 +-
.../{RvMEP => Mep}/CableLayoutViewModel.cs | 0
.../{RvMEP => Mep}/ClashReportCmd.cs | 5 +-
.../{RvMEP => Mep}/ClashReportView.xaml | 6 +-
.../{RvMEP => Mep}/ClashReportView.xaml.cs | 6 +-
.../{RvMEP => Mep}/ClashReportViewModel.cs | 7 +-
.../{RvMEP => Mep}/ClashResolveCmd.cs | 7 +-
.../{RvMEP => Mep}/ClashResolveView.xaml | 20 +-
.../{RvMEP => Mep}/ClashResolveView.xaml.cs | 6 +-
.../{RvMEP => Mep}/ClashResolveViewModel.cs | 0
.../Mep/ConnectSprinklerCmd.cs | 113 +
.../{RvMEP => Mep}/CorrectMEPCurveSlopeCmd.cs | 5 +-
.../{RvMEP => Mep}/DisconnectCmd.cs | 6 +-
.../{RvMEP => Mep}/FlipWorkplaneCmd.cs | 5 +-
.../{RvMEP => Mep}/ForceConnectCmd.cs | 5 +-
.../{RvMEP => Mep}/HeadroomCheckCmd.cs | 9 +-
.../{RvMEP => Mep}/HeadroomCheckView.xaml | 6 +-
.../{RvMEP => Mep}/HeadroomCheckView.xaml.cs | 6 +-
.../{RvMEP => Mep}/HeadroomCheckViewModel.cs | 6 +-
.../{RvMEP => Mep}/InsulationItem.cs | 0
.../{RvMEP => Mep}/MoveConnectCmd.cs | 6 +-
.../{RvMEP => Mep}/MoveMEPCmd.cs | 7 +-
.../{RvMEP => Mep}/MoveMEPCurveView.xaml | 7 +-
.../{RvMEP => Mep}/MoveMEPCurveView.xaml.cs | 6 +-
.../{RvMEP => Mep}/MoveMEPCurveViewModel.cs | 0
.../{RvMEP => Mep}/RoomCheckItem.cs | 0
.../{RvMEP => Mep}/RotateInstanceCmd.cs | 7 +-
.../{RvMEP => Mep}/RotateMEPView.xaml | 7 +-
.../{RvMEP => Mep}/RotateMEPView.xaml.cs | 6 +-
.../{RvMEP => Mep}/RotateMEPViewModel.cs | 6 +-
.../{RvMEP => Mep}/RotationAngle.cs | 6 +-
.../{RvMEP => Mep}/StandMepCurveCmd.cs | 7 +-
.../{RvMEP => Mep}/StandMepCurveView.xaml | 6 +-
.../{RvMEP => Mep}/StandMepCurveView.xaml.cs | 6 +-
.../{RvMEP => Mep}/StandMepCurveViewModel.cs | 28 +-
.../{RvMEP => Mep}/SystemModel.cs | 0
.../TerminalConnectToDuctCmd.cs | 6 +-
.../ModelManager/TemplateManagerView.xaml.cs | 11 -
.../Modeling}/CADCurveToModelCurveCmd.cs | 5 +-
.../InstanceCreatorCmd.cs | 5 +-
.../InstanceCreatorView.xaml | 6 +-
.../InstanceCreatorView.xaml.cs | 6 +-
.../InstanceCreatorViewModel.cs | 9 +-
.../{RvCommon => Modeling}/PipesCreatorCmd.cs | 7 +-
.../PipesCreatorView.xaml | 6 +-
.../PipesCreatorView.xaml.cs | 6 +-
.../PipesCreatorViewModel.cs | 10 +-
.../OptionsBarResources.xaml | 182 ++
.../RvCommon/QuickSelectionView.xaml.cs | 13 -
.../RvFamily/CutGeologyByLoopCmd.cs | 130 -
.../RvMEP/RevitCommandEndedMonitor.cs | 39 -
.../ShrlAlgo.RvKits.addin | 2 +-
.../ShrlAlgoToolkit.RevitAddins.csproj | 10 +-
.../CorrectReferLevelExecutes.cs | 4 +-
.../MergeSharedParametersCmd.cs | 9 +-
.../ModifyModelParamsCmd.cs | 8 +-
.../RemoveParamCmd.cs | 22 +-
.../RenameFamilyItem.cs | 0
.../RenameFamilyNameCmd.cs | 10 +-
.../RenameFamilyView.xaml | 6 +-
.../RenameFamilyView.xaml.cs | 6 +-
.../RenameFamilyViewModel.cs | 7 +-
.../RenameTypeItem.cs | 0
.../RenameTypeNameCmd.cs | 8 +-
.../RenameTypeView.xaml | 66 +-
.../RenameTypeView.xaml.cs | 6 +-
.../RenameTypeViewModel.cs | 17 +-
.../TemplateManagerCmd.cs | 11 +-
.../TemplateManagerView.xaml | 6 +-
.../Standardizer/TemplateManagerView.xaml.cs | 18 +
.../TemplateManagerViewModel.cs | 16 +-
.../Assists/PublishAssist.cs | 238 +-
.../Base/ActionEventHandler.cs | 72 +
.../Base/BaseApplication.cs | 64 +
ShrlAlgoToolkit.RevitCore/Base/BaseCommand.cs | 42 +
.../Base/ExternalEventHelper.cs | 19 +
.../Extensions/DocumentExtensions.cs | 29 +
.../Extensions/FamilyInstanceExtensions.cs | 60 +
.../ShrlAlgoToolkit.RevitCore.projitems | 5 +
258 files changed, 2916 insertions(+), 5013 deletions(-)
create mode 100644 Melskin/Controls/StepBar.xaml
create mode 100644 Melskin/Controls/StepBar.xaml.cs
create mode 100644 Melskin/Controls/TutorialPrompt.xaml
create mode 100644 Melskin/Controls/TutorialPrompt.xaml.cs
create mode 100644 Melskin/Converters/Internal/ProgressToAngleConverter.cs
delete mode 100644 ShrlAlgo.Addin.Test/AddWallTypeParam.cs
delete mode 100644 ShrlAlgo.Addin.Test/Data.cs
delete mode 100644 ShrlAlgo.Addin.Test/FluentAddin.cs
delete mode 100644 ShrlAlgo.Addin.Test/GASInstancesCreator.cs
delete mode 100644 ShrlAlgo.Addin.Test/InstancesCreator.cs
delete mode 100644 ShrlAlgo.Addin.Test/PlaceInstanceByCircleCmd.cs
delete mode 100644 ShrlAlgo.Addin.Test/TempCmd.cs
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/CivilConnectionCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/CreateOpeningsCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/CreateOpeningsView.xaml (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/CreateOpeningsView.xaml.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/CreateOpeningsViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/ModelSplitterCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/PlacementType.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/ResolveCivilConnectView.xaml (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/ResolveCivilConnectView.xaml.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/ResolveCivilConnectViewModel.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/Rotation.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/SlopedFloorCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/SplitComsByLevelCmd.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/SplitFloorCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/WallFinishesCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/WallFinishesView.xaml (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/WallFinishesView.xaml.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => ArchStru}/WallFinishesViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Checker}/ModelCheckCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Checker}/ModelCheckView.xaml (93%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Checker}/ModelCheckView.xaml.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Checker}/ModelCheckViewModel.cs (85%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ColorPickerViewModel.cs (96%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ColorPickerWin.xaml (82%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ColorPickerWin.xaml.cs (80%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/MessageModel.cs (89%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/MessageViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/MessageWin.xaml (83%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/MessageWin.xaml.cs (82%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/NavigateViewViewModel.cs (94%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/NavigateViewWin.xaml (73%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/NavigateViewWin.xaml.cs (83%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ProcessEventHandler.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ProgressBarManager.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ProgressMonitorView.xaml (79%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ProgressMonitorView.xaml.cs (91%)
rename ShrlAlgoToolkit.RevitAddins/{Windows => Common/Controls}/ProgressMonitorViewModel.cs (94%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/BricksFinishesCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/BricksFinishesView.xaml (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/BricksFinishesView.xaml.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/BricksFinishesViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/FloorFinishesCmd.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/FloorFinishesView.xaml (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/FloorFinishesView.xaml.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCivil => Deco}/FloorFinishesViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/AdaptiveMEPTagCmd.cs (91%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/AlignTagsCmd.cs (59%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/AlignTagsView.xaml (87%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/AlignTagsView.xaml.cs (59%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/AlignTagsViewModel.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ArrangeTagsCmd.cs (89%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/CivilViewFilterCmd.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/DimensionBy2LineCmd.cs (94%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ElementControlDock.xaml (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ElementControlDock.xaml.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ElementsControlCmd.cs (85%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ExportSchedulesCmd.cs (96%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/PanelScheduleCmd.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => DrawSheet}/QuickSelectionCmd.cs (51%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => DrawSheet}/QuickSelectionView.xaml (77%)
create mode 100644 ShrlAlgoToolkit.RevitAddins/DrawSheet/QuickSelectionView.xaml.cs
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/QuickViewSectionCmd.cs (81%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/QuickViewSectionView.xaml (89%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/QuickViewSectionView.xaml.cs (56%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/QuickViewSectionViewModel.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SectionBoxControllerCmd.cs (85%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SectionBoxControllerView.xaml (93%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SectionBoxControllerView.xaml.cs (66%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SectionBoxControllerViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SwitchBackgroundCmd.cs (79%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SystemDisplayCmd.cs (65%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SystemDisplayView.xaml (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SystemDisplayView.xaml.cs (60%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/SystemDisplayViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/UserDisplayStyle.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/UserViewDetailLevel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/UserViewDiscipline.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/UserViewType.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ViewManagerCmd.cs (52%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ViewManagerModel.cs (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ViewManagerView.xaml (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ViewManagerView.xaml.cs (60%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/ViewManagerViewModel.cs (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/VisibilityControlCmd.cs (68%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/VisibilityView.xaml (91%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/VisibilityView.xaml.cs (59%)
rename ShrlAlgoToolkit.RevitAddins/{RvView => DrawSheet}/VisibilityViewModel.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{UIRibbon => Entry}/DrawingViewApp.cs (85%)
rename ShrlAlgoToolkit.RevitAddins/{UIRibbon => Entry}/FamilyApp.cs (94%)
rename ShrlAlgoToolkit.RevitAddins/{UIRibbon => Entry}/ModifyTabApp.cs (91%)
rename ShrlAlgoToolkit.RevitAddins/{UIRibbon => Entry}/RvApp.cs (84%)
rename ShrlAlgoToolkit.RevitAddins/{UIRibbon => Entry}/TabManagerApp.cs (97%)
create mode 100644 ShrlAlgoToolkit.RevitAddins/FamMaster/CutGeologyByLoopCmd.cs
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/ExplodeDwgCmd.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily/FamilyLibrary => FamMaster}/FamilyLibraryCmd.cs (63%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily/FamilyLibrary => FamMaster}/FamilyLibraryView.xaml (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily/FamilyLibrary => FamMaster}/FamilyLibraryView.xaml.cs (52%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily/FamilyLibrary => FamMaster}/FamilyLibraryViewModel.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily/FamilyLibrary => FamMaster}/FamilyModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/FamilyProcessorCmd.cs (51%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/FamilyProcessorView.xaml (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/FamilyProcessorView.xaml.cs (61%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/FamilyProcessorViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily/FamilyLibrary => FamMaster}/LoadedFamilyDropHandler.cs (66%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/ModelByCurveCreatorCmd.cs (60%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/ModelByCurveCreatorView.xaml (94%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/ModelByCurveCreatorView.xaml.cs (61%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/ModelByCurveCreatorViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/MoveElementByRelationshipCmd.cs (80%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/PlaceInstanceByCircleCmd.cs (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/ReplaceInstanceCmd.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => FamMaster}/SplitImportInstanceCmd.cs (91%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => FamMaster}/UpgradeFamilyCmd.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/AlignModelElement.cs (96%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/AlignType.cs (80%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/AutoSaveCmd.cs (86%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/AutoSaveView.xaml (92%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/AutoSaveView.xaml.cs (58%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/AutoSaveViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/DetailSelectFiltersView.xaml (93%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/DetailSelectFiltersView.xaml.cs (66%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/DetailSelectFiltersViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => General}/PureModelCmd.cs (91%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => General}/SeparateModelCmd.cs (55%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => General}/SeparateModelViewModel.cs (94%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => General}/SeparateModelWin.xaml (85%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => General}/SeparateModelWin.xaml.cs (59%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AddInsulationCmd.cs (72%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AddInsulationView.xaml (96%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AddInsulationView.xaml.cs (56%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AddInsulationViewModel.cs (94%)
rename {ShrlAlgo.Addin.Test => ShrlAlgoToolkit.RevitAddins/Mep}/AlignMEPCurvesToSlabCmd.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AnyConnectCmd.cs (80%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AnyConnectView.xaml (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AnyConnectView.xaml.cs (60%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AnyConnectViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ArrangeMEPCurveCmd.cs (51%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ArrangeMEPCurveView.xaml (93%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ArrangeMEPCurveView.xaml.cs (57%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ArrangeMEPCurveViewModel.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AutoConnectOptionsView.xaml (94%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/AutoConnectOptionsView.xaml.cs (58%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/BloomConnectorCmd.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/BreakMEPCurveCmd.cs (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/CableLayoutCmd.cs (96%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/CableLayoutView.xaml (89%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/CableLayoutView.xaml.cs (71%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/CableLayoutViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashReportCmd.cs (74%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashReportView.xaml (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashReportView.xaml.cs (55%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashReportViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashResolveCmd.cs (59%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashResolveView.xaml (91%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashResolveView.xaml.cs (87%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ClashResolveViewModel.cs (100%)
create mode 100644 ShrlAlgoToolkit.RevitAddins/Mep/ConnectSprinklerCmd.cs
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/CorrectMEPCurveSlopeCmd.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/DisconnectCmd.cs (90%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/FlipWorkplaneCmd.cs (89%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/ForceConnectCmd.cs (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/HeadroomCheckCmd.cs (94%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/HeadroomCheckView.xaml (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/HeadroomCheckView.xaml.cs (61%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/HeadroomCheckViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/InsulationItem.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/MoveConnectCmd.cs (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/MoveMEPCmd.cs (55%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/MoveMEPCurveView.xaml (90%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/MoveMEPCurveView.xaml.cs (56%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/MoveMEPCurveViewModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/RoomCheckItem.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/RotateInstanceCmd.cs (66%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/RotateMEPView.xaml (94%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/RotateMEPView.xaml.cs (60%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/RotateMEPViewModel.cs (96%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/RotationAngle.cs (69%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/StandMepCurveCmd.cs (59%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/StandMepCurveView.xaml (95%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/StandMepCurveView.xaml.cs (62%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/StandMepCurveViewModel.cs (83%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/SystemModel.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvMEP => Mep}/TerminalConnectToDuctCmd.cs (90%)
delete mode 100644 ShrlAlgoToolkit.RevitAddins/ModelManager/TemplateManagerView.xaml.cs
rename {ShrlAlgo.Addin.Test => ShrlAlgoToolkit.RevitAddins/Modeling}/CADCurveToModelCurveCmd.cs (96%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/InstanceCreatorCmd.cs (73%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/InstanceCreatorView.xaml (92%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/InstanceCreatorView.xaml.cs (56%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/InstanceCreatorViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/PipesCreatorCmd.cs (57%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/PipesCreatorView.xaml (88%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/PipesCreatorView.xaml.cs (60%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Modeling}/PipesCreatorViewModel.cs (97%)
create mode 100644 ShrlAlgoToolkit.RevitAddins/OptionsBarResources.xaml
delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvCommon/QuickSelectionView.xaml.cs
delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvFamily/CutGeologyByLoopCmd.cs
delete mode 100644 ShrlAlgoToolkit.RevitAddins/RvMEP/RevitCommandEndedMonitor.cs
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Standardizer}/CorrectReferLevelExecutes.cs (99%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Standardizer}/MergeSharedParametersCmd.cs (51%)
rename ShrlAlgoToolkit.RevitAddins/{RvCommon => Standardizer}/ModifyModelParamsCmd.cs (93%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Standardizer}/RemoveParamCmd.cs (91%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameFamilyItem.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameFamilyNameCmd.cs (53%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameFamilyView.xaml (98%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameFamilyView.xaml.cs (66%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameFamilyViewModel.cs (97%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameTypeItem.cs (100%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameTypeNameCmd.cs (65%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameTypeView.xaml (88%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameTypeView.xaml.cs (65%)
rename ShrlAlgoToolkit.RevitAddins/{RvFamily => Standardizer}/RenameTypeViewModel.cs (95%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Standardizer}/TemplateManagerCmd.cs (50%)
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Standardizer}/TemplateManagerView.xaml (87%)
create mode 100644 ShrlAlgoToolkit.RevitAddins/Standardizer/TemplateManagerView.xaml.cs
rename ShrlAlgoToolkit.RevitAddins/{ModelManager => Standardizer}/TemplateManagerViewModel.cs (93%)
create mode 100644 ShrlAlgoToolkit.RevitCore/Base/ActionEventHandler.cs
create mode 100644 ShrlAlgoToolkit.RevitCore/Base/BaseApplication.cs
create mode 100644 ShrlAlgoToolkit.RevitCore/Base/BaseCommand.cs
create mode 100644 ShrlAlgoToolkit.RevitCore/Base/ExternalEventHelper.cs
create mode 100644 ShrlAlgoToolkit.RevitCore/Extensions/FamilyInstanceExtensions.cs
diff --git a/Melskin/Controls/Button.xaml b/Melskin/Controls/Button.xaml
index 8f67c8f..ccb3e60 100644
--- a/Melskin/Controls/Button.xaml
+++ b/Melskin/Controls/Button.xaml
@@ -526,6 +526,7 @@
+
diff --git a/Melskin/Controls/Card.xaml b/Melskin/Controls/Card.xaml
index f85aca6..0d9444d 100644
--- a/Melskin/Controls/Card.xaml
+++ b/Melskin/Controls/Card.xaml
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:Melskin.Controls"
xmlns:decorations="clr-namespace:Melskin.Controls.Decorations">
-
+
+
\ No newline at end of file
diff --git a/Melskin/Controls/CheckBox.xaml b/Melskin/Controls/CheckBox.xaml
index a38952c..20a0e3d 100644
--- a/Melskin/Controls/CheckBox.xaml
+++ b/Melskin/Controls/CheckBox.xaml
@@ -186,7 +186,7 @@
-
+
diff --git a/Melskin/Controls/ChooseBox.xaml b/Melskin/Controls/ChooseBox.xaml
index 97a05d9..5d10e6a 100644
--- a/Melskin/Controls/ChooseBox.xaml
+++ b/Melskin/Controls/ChooseBox.xaml
@@ -148,7 +148,7 @@
-
+
@@ -162,7 +162,7 @@
x:Name="ContentBorder"
MinWidth="{TemplateBinding MinWidth}"
MinHeight="{TemplateBinding MinHeight}"
- Padding="0"
+ Padding="{TemplateBinding Padding}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{TemplateBinding Background}"
@@ -178,6 +178,7 @@
Name="PlaceholderTextBlock"
Margin="5,0,0,0"
VerticalAlignment="Center"
+ Focusable="False"
FontSize="{TemplateBinding FontSize}"
Foreground="{DynamicResource TextPlaceholderBrush}"
Text="{TemplateBinding PlaceholderText}"
@@ -185,7 +186,6 @@
-
diff --git a/Melskin/Controls/MultiComboBox.xaml b/Melskin/Controls/MultiComboBox.xaml
index 09e32d4..93b1737 100644
--- a/Melskin/Controls/MultiComboBox.xaml
+++ b/Melskin/Controls/MultiComboBox.xaml
@@ -73,7 +73,8 @@
-
+
+
diff --git a/Melskin/Controls/MultiComboBox.xaml.cs b/Melskin/Controls/MultiComboBox.xaml.cs
index d05dedd..4c732ad 100644
--- a/Melskin/Controls/MultiComboBox.xaml.cs
+++ b/Melskin/Controls/MultiComboBox.xaml.cs
@@ -286,7 +286,7 @@ public class MultiComboBox : Control
///
/// 该属性包含了从数据源中筛选出的项,这些项将被实际显示在组合框中。通过设置此属性,可以控制哪些项最终展示给用户。当数据源发生变化或应用了新的筛选条件时,FilteredItems 会相应地更新。
///
- public IEnumerable FilteredItems
+ public IEnumerable? FilteredItems
{
get => (IEnumerable)GetValue(FilteredItemsProperty);
set => SetValue(FilteredItemsProperty, value);
diff --git a/Melskin/Controls/ProgressBar.xaml b/Melskin/Controls/ProgressBar.xaml
index 1b232ae..77e0977 100644
--- a/Melskin/Controls/ProgressBar.xaml
+++ b/Melskin/Controls/ProgressBar.xaml
@@ -201,6 +201,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -210,50 +400,43 @@
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
-
-
+
+
+
+
@@ -264,6 +447,8 @@
+
+
@@ -273,47 +458,66 @@
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
@@ -324,6 +528,87 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Melskin/Controls/StepBar.xaml.cs b/Melskin/Controls/StepBar.xaml.cs
new file mode 100644
index 0000000..d16d45e
--- /dev/null
+++ b/Melskin/Controls/StepBar.xaml.cs
@@ -0,0 +1,124 @@
+using System;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Input;
+
+namespace Melskin.Controls
+{
+ public class StepBar : ItemsControl
+ {
+ // 使用 StepProgress 代替 SelectedIndex,允许值范围 0 到 Items.Count
+ public static readonly DependencyProperty StepProgressProperty =
+ DependencyProperty.Register("StepProgress", typeof(int), typeof(StepBar),
+ new FrameworkPropertyMetadata(0, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, OnStepProgressChanged));
+
+ public int StepProgress
+ {
+ get => (int)GetValue(StepProgressProperty);
+ set => SetValue(StepProgressProperty, value);
+ }
+
+ public static readonly DependencyProperty OrientationProperty =
+ DependencyProperty.Register("Orientation", typeof(Orientation), typeof(StepBar),
+ new PropertyMetadata(Orientation.Horizontal));
+
+ public Orientation Orientation
+ {
+ get => (Orientation)GetValue(OrientationProperty);
+ set => SetValue(OrientationProperty, value);
+ }
+
+ static StepBar()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(StepBar), new FrameworkPropertyMetadata(typeof(StepBar)));
+ }
+
+ private static void OnStepProgressChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if (d is StepBar bar) bar.UpdateItemsStatus();
+ }
+
+ protected override DependencyObject GetContainerForItemOverride() => new StepBarItem();
+ protected override bool IsItemItsOwnContainerOverride(object item) => item is StepBarItem;
+
+ protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
+ {
+ base.PrepareContainerForItemOverride(element, item);
+ UpdateItemsStatus();
+ }
+
+ internal void UpdateItemsStatus()
+ {
+ for (int i = 0; i < Items.Count; i++)
+ {
+ if (ItemContainerGenerator.ContainerFromIndex(i) is StepBarItem container)
+ {
+ container.Index = i + 1;
+ container.IsLast = (i == Items.Count - 1);
+ container.Orientation = this.Orientation;
+
+ // 核心逻辑:
+ // i < Progress -> 已完成 (Completed)
+ // i == Progress -> 进行中 (Active)
+ // i > Progress -> 等待 (Waiting)
+ if (i < StepProgress)
+ container.Status = StepStatus.Completed;
+ else if (i == StepProgress)
+ container.Status = StepStatus.Active;
+ else
+ container.Status = StepStatus.Waiting;
+ }
+ }
+ }
+ }
+
+ public class StepBarItem : ContentControl
+ {
+ public static readonly DependencyProperty StatusProperty = DependencyProperty.Register("Status", typeof(StepStatus), typeof(StepBarItem), new PropertyMetadata(StepStatus.Waiting));
+ public StepStatus Status { get => (StepStatus)GetValue(StatusProperty); set => SetValue(StatusProperty, value); }
+
+ public static readonly DependencyProperty IndexProperty = DependencyProperty.Register("Index", typeof(int), typeof(StepBarItem), new PropertyMetadata(1));
+ public int Index { get => (int)GetValue(IndexProperty); set => SetValue(IndexProperty, value); }
+
+ public static readonly DependencyProperty IsLastProperty = DependencyProperty.Register("IsLast", typeof(bool), typeof(StepBarItem), new PropertyMetadata(false));
+ public bool IsLast { get => (bool)GetValue(IsLastProperty); set => SetValue(IsLastProperty, value); }
+
+ public static readonly DependencyProperty OrientationProperty = DependencyProperty.Register("Orientation", typeof(Orientation), typeof(StepBarItem), new PropertyMetadata(Orientation.Horizontal));
+ public Orientation Orientation { get => (Orientation)GetValue(OrientationProperty); set => SetValue(OrientationProperty, value); }
+
+ static StepBarItem()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(StepBarItem), new FrameworkPropertyMetadata(typeof(StepBarItem)));
+ }
+
+ protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
+ {
+ base.OnMouseLeftButtonDown(e);
+ var parent = ItemsControl.ItemsControlFromItemContainer(this) as StepBar;
+ if (parent != null)
+ {
+ int myIndex = parent.ItemContainerGenerator.IndexFromContainer(this);
+
+ // 点击逻辑:
+ // 1. 如果点的是当前正在进行的步 -> 完成这一步,进度+1
+ // 2. 如果点的是已经完成的步 -> 回退到那一步
+ // 3. 如果点的是还没开始的步 -> 直接跳到那一步
+ if (parent.StepProgress == myIndex)
+ {
+ parent.StepProgress = myIndex + 1;
+ }
+ else
+ {
+ parent.StepProgress = myIndex;
+ }
+ }
+ }
+ }
+}
+
+public enum StepStatus
+{
+ Completed,
+ Active,
+ Waiting
+}
diff --git a/Melskin/Controls/TextBox.xaml b/Melskin/Controls/TextBox.xaml
index 9e4c83a..f57a650 100644
--- a/Melskin/Controls/TextBox.xaml
+++ b/Melskin/Controls/TextBox.xaml
@@ -379,6 +379,7 @@
+
diff --git a/Melskin/Controls/TutorialPrompt.xaml b/Melskin/Controls/TutorialPrompt.xaml
new file mode 100644
index 0000000..9fa9010
--- /dev/null
+++ b/Melskin/Controls/TutorialPrompt.xaml
@@ -0,0 +1,149 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Melskin/Controls/TutorialPrompt.xaml.cs b/Melskin/Controls/TutorialPrompt.xaml.cs
new file mode 100644
index 0000000..55ca87e
--- /dev/null
+++ b/Melskin/Controls/TutorialPrompt.xaml.cs
@@ -0,0 +1,147 @@
+using System;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Input;
+
+namespace Melskin.Controls
+{
+ public class TutorialGuide : Control
+ {
+ public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(nameof(Title), typeof(string), typeof(TutorialGuide), new PropertyMetadata("Tutorial"));
+ public string Title { get => (string)GetValue(TitleProperty); set => SetValue(TitleProperty, value); }
+
+ public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register(nameof(Description), typeof(string), typeof(TutorialGuide), new PropertyMetadata(string.Empty));
+ public string Description { get => (string)GetValue(DescriptionProperty); set => SetValue(DescriptionProperty, value); }
+
+ public static readonly DependencyProperty StepTextProperty = DependencyProperty.Register(nameof(StepText), typeof(string), typeof(TutorialGuide), new PropertyMetadata("1 / 1"));
+ public string StepText { get => (string)GetValue(StepTextProperty); set => SetValue(StepTextProperty, value); }
+
+ // 路由事件
+ public static readonly RoutedEvent NextEvent = EventManager.RegisterRoutedEvent(nameof(Next), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TutorialGuide));
+ public event RoutedEventHandler Next { add => AddHandler(NextEvent, value); remove => RemoveHandler(NextEvent, value); }
+
+ public static readonly RoutedEvent BackEvent = EventManager.RegisterRoutedEvent(nameof(Back), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TutorialGuide));
+ public event RoutedEventHandler Back { add => AddHandler(BackEvent, value); remove => RemoveHandler(BackEvent, value); }
+
+ public static readonly RoutedEvent CloseEvent = EventManager.RegisterRoutedEvent(nameof(Close), RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(TutorialGuide));
+ public event RoutedEventHandler Close { add => AddHandler(CloseEvent, value); remove => RemoveHandler(CloseEvent, value); }
+ public static readonly DependencyProperty PlacementProperty =
+ DependencyProperty.Register("Placement", typeof(PlacementMode), typeof(TutorialGuide), new PropertyMetadata(PlacementMode.Top));
+
+ public PlacementMode Placement
+ {
+ get => (PlacementMode)GetValue(PlacementProperty);
+ set => SetValue(PlacementProperty, value);
+ }
+ static TutorialGuide()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(TutorialGuide), new FrameworkPropertyMetadata(typeof(TutorialGuide)));
+ }
+
+ public override void OnApplyTemplate()
+ {
+ base.OnApplyTemplate();
+ if (GetTemplateChild("PART_NextBtn") is Button next) next.Click += (s, e) => RaiseEvent(new RoutedEventArgs(NextEvent));
+ if (GetTemplateChild("PART_BackBtn") is Button back) back.Click += (s, e) => RaiseEvent(new RoutedEventArgs(BackEvent));
+ if (GetTemplateChild("PART_CloseBtn") is Button close) close.Click += (s, e) => RaiseEvent(new RoutedEventArgs(CloseEvent));
+ }
+ }
+ public class TutorialHighlighter : Control
+ {
+ static TutorialHighlighter()
+ {
+ DefaultStyleKeyProperty.OverrideMetadata(typeof(TutorialHighlighter), new FrameworkPropertyMetadata(typeof(TutorialHighlighter)));
+ }
+
+ // 目标控件属性
+ public static readonly DependencyProperty TargetElementProperty =
+ DependencyProperty.Register("TargetElement", typeof(FrameworkElement), typeof(TutorialHighlighter), new PropertyMetadata(null, OnTargetChanged));
+
+ public FrameworkElement TargetElement
+ {
+ get => (FrameworkElement)GetValue(TargetElementProperty);
+ set => SetValue(TargetElementProperty, value);
+ }
+
+ private static void OnTargetChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
+ {
+ if (d is TutorialHighlighter helper) helper.UpdatePosition();
+ }
+
+ public void UpdatePosition()
+ {
+ if (TargetElement == null) return;
+
+ // 获取 TutorialLayer (也就是当前的父容器 Canvas)
+ var parentCanvas = VisualTreeHelper.GetParent(this) as UIElement;
+ if (parentCanvas == null) return;
+
+ // 关键修改:相对于 parentCanvas 计算坐标,而不是相对于 Window
+ Point location = TargetElement.TranslatePoint(new Point(0, 0), parentCanvas);
+
+ // 加上偏移量(让边框比目标稍微大一点,包围住目标)
+ double offset = 4;
+ Canvas.SetLeft(this, location.X - offset);
+ Canvas.SetTop(this, location.Y - offset);
+
+ this.Width = TargetElement.ActualWidth + (offset * 2);
+ this.Height = TargetElement.ActualHeight + (offset * 2);
+ }
+ }
+ public class TutorialLayer : Canvas
+ {
+ private TutorialHighlighter _highlighter;
+ private TutorialGuide _guide;
+
+ public TutorialLayer()
+ {
+ // 初始化两个组件
+ _highlighter = new TutorialHighlighter();
+ _guide = new TutorialGuide();
+
+ this.Children.Add(_highlighter);
+ this.Children.Add(_guide);
+
+ // 初始隐藏
+ this.Visibility = Visibility.Collapsed;
+ }
+
+ public void ShowStep(FrameworkElement target, string title, string content, string step)
+ {
+ this.Visibility = Visibility.Visible;
+
+ // 1. 更新文字
+ _guide.Title = title;
+ _guide.Description = content;
+ _guide.StepText = step;
+
+ // 2. 强制刷新布局(确保目标控件的 ActualWidth/Height 已计算)
+ target.UpdateLayout();
+
+ // 3. 定位高亮框 (Highlighter)
+ _highlighter.TargetElement = target;
+ _highlighter.UpdatePosition();
+
+ // 4. 定位提示框 (Guide)
+ // 获取高亮框在当前 Canvas 里的位置
+ double hLeft = Canvas.GetLeft(_highlighter);
+ double hTop = Canvas.GetTop(_highlighter);
+ double hWidth = _highlighter.Width;
+ double hHeight = _highlighter.Height;
+
+ // 默认逻辑:放在目标右侧。如果右侧放不下,放在左侧。
+ double guideLeft = hLeft + hWidth + 10;
+ double guideTop = hTop;
+
+ if (guideLeft + 350 > this.ActualWidth) // 350 是 TutorialGuide 的宽度
+ {
+ guideLeft = hLeft - 350 - 10; // 放左边
+ }
+
+ Canvas.SetLeft(_guide, guideLeft);
+ Canvas.SetTop(_guide, guideTop);
+ }
+ public void Close() => this.Visibility = Visibility.Collapsed;
+ }
+}
\ No newline at end of file
diff --git a/Melskin/Converters/Internal/ProgressToAngleConverter.cs b/Melskin/Converters/Internal/ProgressToAngleConverter.cs
new file mode 100644
index 0000000..9c49868
--- /dev/null
+++ b/Melskin/Converters/Internal/ProgressToAngleConverter.cs
@@ -0,0 +1,62 @@
+using System.Globalization;
+using System.Windows.Data;
+
+namespace Melskin.Converters.Internal
+{
+ internal class ProgressToAngleConverter : IMultiValueConverter
+ {
+ public readonly static ProgressToAngleConverter Instance = new ProgressToAngleConverter();
+
+ public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
+ {
+ // 防御性检查:检查 UnsetValue 或 Null
+ if (values == null || values.Length < 2 ||
+ values[0] == System.Windows.DependencyProperty.UnsetValue || values[0] == null ||
+ values[1] == System.Windows.DependencyProperty.UnsetValue || values[1] == null)
+ {
+ return System.Windows.Media.Geometry.Empty;
+ }
+
+ double value = System.Convert.ToDouble(values[0]);
+ double max = System.Convert.ToDouble(values[1]);
+
+ if (max <= 0) return System.Windows.Media.Geometry.Empty;
+
+ // 确保百分比在 0-0.9999 之间
+ double percent = (value / max) <= 0 ? 0 : (value / max) >= 1 ? 0.9999 : value / max;
+ double angle = percent * 360;
+
+ double size = 100;
+ double stroke = 10;
+ double center = size / 2;
+ double radius = (size - stroke) / 2; // 半径 45
+
+ double rad = (angle - 90) * Math.PI / 180;
+ double x = center + radius * Math.Cos(rad);
+ double y = center + radius * Math.Sin(rad);
+
+ bool isLargeArc = angle > 180;
+
+ Point startPoint = new Point(center, center - radius);
+ Point endPoint = new Point(x, y);
+
+ PathFigure figure = new PathFigure { StartPoint = startPoint, IsClosed = false };
+ figure.Segments.Add(new ArcSegment(
+ endPoint,
+ new Size(radius, radius),
+ 0,
+ isLargeArc,
+ SweepDirection.Clockwise,
+ true));
+
+ return new PathGeometry(new[] { figure });
+ }
+
+
+
+ public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Melskin/Melskin.csproj b/Melskin/Melskin.csproj
index eb4f607..e0c1f98 100644
--- a/Melskin/Melskin.csproj
+++ b/Melskin/Melskin.csproj
@@ -16,7 +16,7 @@
WPF;Theme;Controls
MIT
False
- True
+ False
WPF 自定义控件库,Meld Skin
AnyCPU;x64
diff --git a/Melskin/Themes/Dark.xaml b/Melskin/Themes/Dark.xaml
index cfc6208..9c9204a 100644
--- a/Melskin/Themes/Dark.xaml
+++ b/Melskin/Themes/Dark.xaml
@@ -131,7 +131,7 @@
#24272C
- #57606f
+ #E61A1A1A
#2C3036
@@ -146,10 +146,10 @@
用于控件的不同交互状态(正常、悬停、按压、选中、禁用)
-->
- #282828
+ #1E2124
- #333333
+ #2C2F33
#3D3D3D
diff --git a/Melskin/Themes/Styles.xaml b/Melskin/Themes/Styles.xaml
index 00134e7..7055ca1 100644
--- a/Melskin/Themes/Styles.xaml
+++ b/Melskin/Themes/Styles.xaml
@@ -42,6 +42,8 @@
+
+
diff --git a/MelskinTest/MainWindow.xaml b/MelskinTest/MainWindow.xaml
index fd60077..d68bac0 100644
--- a/MelskinTest/MainWindow.xaml
+++ b/MelskinTest/MainWindow.xaml
@@ -466,6 +466,10 @@
+
+
+
+
@@ -679,8 +683,16 @@
-
+
+
+
+
+
+
+
+
+
-
+
-
+ Value="50" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
-
+
+
diff --git a/MelskinTest/MainWindow.xaml.cs b/MelskinTest/MainWindow.xaml.cs
index b62219a..4f0f1cc 100644
--- a/MelskinTest/MainWindow.xaml.cs
+++ b/MelskinTest/MainWindow.xaml.cs
@@ -267,6 +267,8 @@ public partial class MainWindow
}
private bool _loaded = false;
+ private int currentStep;
+
private void Window_Loaded(object sender, RoutedEventArgs e) { _loaded = true; }
private void Switch_OnClick(object sender, RoutedEventArgs e) { ThemeManager.SwitchThemeMode(); }
@@ -419,6 +421,47 @@ public partial class MainWindow
};
window.ShowDialog();
}
+
+ private void MyTutorial_Close(object sender, RoutedEventArgs e)
+ {
+ MessageBox.Show("教程已关闭");
+ ShowCurrentStep();
+ }
+
+ private void MyTutorial_Back(object sender, RoutedEventArgs e)
+ {
+ MessageBox.Show("返回上一步");
+ }
+
+
+ private void StartBtn_Click(object sender, RoutedEventArgs e)
+ {
+ currentStep = 1;
+ ShowCurrentStep();
+ }
+
+ private void MyTutorial_Next(object sender, RoutedEventArgs e)
+ {
+ currentStep++;
+ ShowCurrentStep();
+ }
+
+ private void ShowCurrentStep()
+ {
+ switch (currentStep)
+ {
+ case 1:
+ MyTutorial.ShowStep(TargetButton, "保存功能", "点击这里可以保存你当前的进度。", "1 / 2");
+ break;
+ case 2:
+ MyTutorial.ShowStep(StartBtn, "删除功能", "谨慎使用,这会清除数据。", "2 / 2");
+ break;
+
+ default:
+ MyTutorial.Close();
+ break;
+ }
+ }
}
#region 数据模型
@@ -506,7 +549,7 @@ public class Area
{
public Area()
{
-
+
}
public Area(int Id, string Name)
{
diff --git a/ShrlAlgo.Addin.Test/ActionWindow.xaml.cs b/ShrlAlgo.Addin.Test/ActionWindow.xaml.cs
index 1199f32..9fb264a 100644
--- a/ShrlAlgo.Addin.Test/ActionWindow.xaml.cs
+++ b/ShrlAlgo.Addin.Test/ActionWindow.xaml.cs
@@ -18,7 +18,6 @@ using Microsoft.Win32;
using Nice3point.Revit.Toolkit.External.Handlers;
using OfficeOpenXml;
-using ShrlAlgoToolkit.RevitCore.Assists;
namespace ShrlAlgo.Addin.Test;
diff --git a/ShrlAlgo.Addin.Test/AddWallTypeParam.cs b/ShrlAlgo.Addin.Test/AddWallTypeParam.cs
deleted file mode 100644
index 6ae3d4b..0000000
--- a/ShrlAlgo.Addin.Test/AddWallTypeParam.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using Autodesk.Revit.Attributes;
-using Autodesk.Revit.DB;
-using Autodesk.Revit.UI;
-using Autodesk.Revit.UI.Selection;
-
-using Nice3point.Revit.Toolkit.External;
-using ShrlAlgoToolkit.RevitCore.Assists;
-using ShrlAlgoToolkit.Revit.Extensions;
-
-
-namespace ShrlAlgo.Addin.Test;
-[Transaction(TransactionMode.Manual)]
-[Regeneration(RegenerationOption.Manual)]
-public class AddWallTypeParam : ExternalCommand
-{
- public override void Execute()
- {
- Document.Invoke(
- ts =>
- {
- var file = ParameterAssist.OpenSharedParametersFile(Application);
- var group = file.Groups.get_Item("Atkore");
- var definition = group.Definitions.get_Item("test");
- var categories = Application.Create.NewCategorySet();
- categories.Insert(Category.GetCategory(Document, BuiltInCategory.OST_Walls));
- var newIB = Application.Create.NewTypeBinding(categories);
- var b = Document.ParameterBindings.ReInsert(definition, newIB);
- });
-
- }
-}
\ No newline at end of file
diff --git a/ShrlAlgo.Addin.Test/Data.cs b/ShrlAlgo.Addin.Test/Data.cs
deleted file mode 100644
index 221eccd..0000000
--- a/ShrlAlgo.Addin.Test/Data.cs
+++ /dev/null
@@ -1,2435 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Runtime.CompilerServices;
-
-namespace ShrlAlgo.Addin.Test
-{
- public class NotificationObject : INotifyPropertyChanged
- {
- protected bool SetProperty(ref T storage, T value, [CallerMemberName] string propertyName = "")
- {
- if (EqualityComparer.Default.Equals(storage, value))
- return false;
-
- storage = value;
-
- RaisePropertyChanged(propertyName);
-
- return true;
- }
-
- public event PropertyChangedEventHandler PropertyChanged;
-
- protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = "")
- {
- // ReSharper disable once InconsistentlySynchronizedField
- var pc = (PropertyChangedEventArgs)_propChanged[propertyName];
-
- if (pc is null)
- {
- // double-checked;
- lock (_propChanged)
- {
- pc = (PropertyChangedEventArgs)_propChanged[propertyName];
-
- if (pc is null)
- {
- pc = new PropertyChangedEventArgs(propertyName);
- _propChanged[propertyName] = pc;
- }
- }
- }
-
- PropertyChanged?.Invoke(this, pc);
- }
-
- // use Hashtable to get free lockless reading
- private static readonly Hashtable _propChanged = new Hashtable();
- }
-
- public class Area
- {
- public Area(int index, string name)
- {
- Index = index;
- Name = name;
- }
-
-
- public int Index { get; set; }
- public string Name { get; set; }
- }
-
- public class Person
- {
- private static int _count;
-
- public string Name { get; set; }
- public List Child { get; set; }
-
- public long Data1 { get; set; } = _count++;
- public string Data2 { get; set; } = Guid.NewGuid().ToString();
- }
-
- public class Data : NotificationObject
- {
- public Area[] Areas { get; } =
- {
- new Area(0, "北海道"),
- new Area(1, "青森県"),
- new Area(2, "岩手県"),
- new Area(3, "宮城県"),
- new Area(4, "秋田県"),
- new Area(5, "山形県"),
- new Area(6, "福島県"),
- new Area(7, "茨城県"),
- new Area(8, "栃木県"),
- new Area(9, "群馬県"),
- new Area(10, "埼玉県"),
- new Area(11, "千葉県"),
- new Area(12, "東京都"),
- new Area(13, "神奈川県"),
- new Area(14, "新潟県"),
- new Area(15, "富山県"),
- new Area(16, "石川県"),
- new Area(17, "福井県"),
- new Area(18, "山梨県"),
- new Area(19, "長野県"),
- new Area(20, "岐阜県"),
- new Area(21, "静岡県"),
- new Area(22, "愛知県"),
- new Area(23, "三重県"),
- new Area(24, "滋賀県"),
- new Area(25, "京都府"),
- new Area(26, "大阪府"),
- new Area(27, "兵庫県"),
- new Area(28, "奈良県"),
- new Area(29, "和歌山県"),
- new Area(30, "鳥取県"),
- new Area(31, "島根県"),
- new Area(32, "岡山県"),
- new Area(33, "広島県"),
- new Area(34, "山口県"),
- new Area(35, "徳島県"),
- new Area(36, "香川県"),
- new Area(37, "愛媛県"),
- new Area(38, "高知県"),
- new Area(39, "福岡県"),
- new Area(40, "佐賀県"),
- new Area(41, "長崎県"),
- new Area(42, "熊本県"),
- new Area(43, "大分県"),
- new Area(44, "宮崎県"),
- new Area(45, "鹿児島県"),
- new Area(46, "沖縄県")
- };
-
- public List Persons { get; }
-
- #region ShortItems
-
- private ObservableCollection _ShortItems;
-
- public ObservableCollection ShortItems
- {
- get => _ShortItems;
- set => SetProperty(ref _ShortItems, value);
- }
-
- #endregion
-
- #region LongItems
-
- private ObservableCollection _LongItems;
-
- public ObservableCollection LongItems
- {
- get => _LongItems;
- set => SetProperty(ref _LongItems, value);
- }
-
- #endregion
-
- #region SelectedShortItem
-
- private string _SelectedShortItem;
-
- public string SelectedShortItem
- {
- get => _SelectedShortItem;
- set => SetProperty(ref _SelectedShortItem, value);
- }
-
- #endregion
-
- #region SelectedLongItem
-
- private string _SelectedLongItem;
-
- public string SelectedLongItem
- {
- get => _SelectedLongItem;
- set => SetProperty(ref _SelectedLongItem, value);
- }
-
- #endregion
-
-
- public Data()
- {
- ShortItems = new ObservableCollection
- {
- "あいうえお",
- "将棋",
- "東京",
- "大阪",
- "カード",
- "スピーカー"
- };
-
- LongItems = new ObservableCollection
- {
- "北海道",
- "青森県",
- "岩手県",
- "宮城県",
- "秋田県",
- "山形県",
- "福島県",
- "茨城県",
- "栃木県",
- "群馬県",
- "埼玉県",
- "千葉県",
- "東京都",
- "神奈川県",
- "新潟県",
- "富山県",
- "石川県",
- "福井県",
- "山梨県",
- "長野県",
- "岐阜県",
- "静岡県",
- "愛知県",
- "三重県",
- "滋賀県",
- "京都府",
- "大阪府",
- "兵庫県",
- "奈良県",
- "和歌山県",
- "鳥取県",
- "島根県",
- "岡山県",
- "広島県",
- "山口県",
- "徳島県",
- "香川県",
- "愛媛県",
- "高知県",
- "福岡県",
- "佐賀県",
- "長崎県",
- "熊本県",
- "大分県",
- "宮崎県",
- "鹿児島県",
- "沖縄県"
- };
-
- SelectedShortItem = ShortItems[0];
- SelectedLongItem = LongItems[0];
-
- Persons = new List()
- {
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
-
-
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List()
- {
- new Person() {Name = "test2-2-1"},
- new Person() {Name = "test2-2-2"}
- }
- }
- }
- },
- new Person()
- {
- Name = "test1",
- Child = new List()
- {
- new Person() {Name = "test1-1"},
- new Person() {Name = "test1-2"},
- new Person() {Name = "test1-3"},
- }
- },
- new Person()
- {
- Name = "test2",
- Child = new List()
- {
- new Person() {Name = "test2-1"},
- new Person()
- {
- Name = "test2-2",
- Child = new List