diff --git a/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj b/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj
index 9eefb845c..b609373df 100644
--- a/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj
+++ b/CSharpBible/Basics/Basic_Del00_Template/Basic_Del00_Template_net.csproj
@@ -2,7 +2,7 @@
Exe
- net6.0;net7.0
+ net6.0;net7.0;net8.0;net9.0
diff --git a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj
index 4175efe71..0abb2a214 100644
--- a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj
+++ b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_TemplateTests.csproj
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj
index 67127c042..ba82eef62 100644
--- a/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj
+++ b/CSharpBible/Basics/Basic_Del00_TemplateTests/Basic_Del00_Template_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0
+ net6.0;net7.0;net8.0;net9.0
true
false
@@ -14,15 +14,14 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj
index baeb6e857..bae3c38d4 100644
--- a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj
+++ b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_ActionTests.csproj
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj
index d13224db2..98e14beac 100644
--- a/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj
+++ b/CSharpBible/Basics/Basic_Del01_ActionTests/Basic_Del01_Action_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0
+ net6.0;net7.0;net8.0;net9.0
true
false
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj
index 7226ac7c3..71c2cf3e6 100644
--- a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj
+++ b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_FilterTests.csproj
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj
index b9031e50c..4f0f156d0 100644
--- a/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj
+++ b/CSharpBible/Basics/Basic_Del02_FilterTests/Basic_Del02_Filter_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0
+ net6.0;net7.0;net8.0;net9.0
true
false
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj
index 2ea5d4870..305a6cdc5 100644
--- a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj
+++ b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_GeneralTests.csproj
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj
index 442a32ed3..9c4b0782c 100644
--- a/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj
+++ b/CSharpBible/Basics/Basic_Del03_GeneralTests/Basic_Del03_General_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0
+ net6.0;net7.0;net8.0;net9.0
true
false
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj
index ba1ea97d6..a52c1a369 100644
--- a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj
+++ b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuffTests.csproj
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj
index 6d3e128ed..5c3efc85a 100644
--- a/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj
+++ b/CSharpBible/Basics/Basic_Del04_TestImposibleStuffTests/Basic_Del04_TestImposibleStuff_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0
+ net6.0;net7.0;net8.0;net9.0
true
false
@@ -14,9 +14,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/CSharpBible.sln b/CSharpBible/CSharpBible.sln
index 0f4cb317f..14a7a9d28 100644
--- a/CSharpBible/CSharpBible.sln
+++ b/CSharpBible/CSharpBible.sln
@@ -181,7 +181,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tetris_BaseTests", "Games\T
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Werner_Flaschbier_Base", "Games\Werner_Flaschbier\Werner_Flaschbier_Base.csproj", "{A5D73D86-9D5C-45E1-AE27-DDF8A5EE52E5}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Werner_Flaschbier_BaseTests", "Games\Werner_Flaschbier_BaseTests\Werner_Flaschbier_BaseTests.csproj", "{FA9F3597-4C9F-48FA-A507-54BF6825C637}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Werner_Flaschbier_ConsoleTests", "Games\Werner_Flaschbier_BaseTests\Werner_Flaschbier_ConsoleTests.csproj", "{FA9F3597-4C9F-48FA-A507-54BF6825C637}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Display_netTest", "Display_Test\Display_netTest.csproj", "{5B2D89EC-28CF-493C-B503-74DCB0F68D73}"
EndProject
@@ -1033,6 +1033,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF_StickyNotesDemoTests",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPF_StickyNotesDemo_netTests", "WPFSamples_2\WPF_StickyNotesDemoTests\WPF_StickyNotesDemo_netTests.csproj", "{75BC162C-D512-4027-8665-FD5420ACB863}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenInterfaces", "Libraries\GenInterfaces\GenInterfaces.csproj", "{0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -2856,6 +2858,10 @@ Global
{75BC162C-D512-4027-8665-FD5420ACB863}.Debug|Any CPU.Build.0 = Debug|Any CPU
{75BC162C-D512-4027-8665-FD5420ACB863}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75BC162C-D512-4027-8665-FD5420ACB863}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3308,6 +3314,7 @@ Global
{E072D6A6-758E-4ABD-9B45-6A1FD8C35BAF} = {174E6CB9-42E1-4C99-B8EF-A2C1F426758D}
{C4C9533A-06C5-48CD-88DC-A1E7A81228E0} = {174E6CB9-42E1-4C99-B8EF-A2C1F426758D}
{75BC162C-D512-4027-8665-FD5420ACB863} = {174E6CB9-42E1-4C99-B8EF-A2C1F426758D}
+ {0C5621AB-5BE2-49E2-85B1-2C3A17C2DCFA} = {7BA535EF-38FA-47A6-A6BD-5D6333D5DB10}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {DAF8B3ED-D51A-4CDA-8BF1-1E032CF0AC4F}
diff --git a/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj b/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj
index 58f60874d..60e1ef954 100644
--- a/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj
+++ b/CSharpBible/Calc/Calc32Tests/Calc32Tests.csproj
@@ -20,9 +20,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj b/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj
index ef5c3a5aa..5a74a71f8 100644
--- a/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj
+++ b/CSharpBible/Calc/Calc32Tests/Calc32_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
disable
true
false
@@ -24,9 +24,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj b/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj
index 777b08c29..4c3f21167 100644
--- a/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj
+++ b/CSharpBible/Calc/Calc32WPFTests/Calc32WPFTests.csproj
@@ -25,9 +25,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj b/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj
index 28143e6f1..e51493942 100644
--- a/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj
+++ b/CSharpBible/Calc/Calc32WPFTests/Calc32WPF_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
true
false
@@ -25,9 +25,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj b/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj
index 5ec6a67e5..56796bd28 100644
--- a/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj
+++ b/CSharpBible/Calc/Calc64BaseTests/Calc64BaseTests.csproj
@@ -20,9 +20,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj b/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj
index 276ce9686..53e3b23ca 100644
--- a/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj
+++ b/CSharpBible/Calc/Calc64BaseTests/Calc64Base_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net9.0
@@ -20,9 +20,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj b/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj
index 18c4365c3..590716e9e 100644
--- a/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj
+++ b/CSharpBible/Calc/Calc64WFTests/Calc64WFTests.csproj
@@ -15,9 +15,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj b/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj
index 308428648..0c181eeb1 100644
--- a/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj
+++ b/CSharpBible/Calc/Calc64WFTests/Calc64WF_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
true
false
@@ -20,9 +20,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs b/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs
index dd0f5920b..8e26e8664 100644
--- a/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs
+++ b/CSharpBible/Calc/Calc64WFTests/Visual/Converter/OperationModeToShortStringTests.cs
@@ -36,7 +36,7 @@ public class OperationModeToShortStringTests
public void ConvertTest()
{
var vcTest = new OperationModeToShortString();
- foreach(var e in typeof(Calc64Model.EOpMode).GetEnumValues())
+ foreach(var e in typeof(EOpMode).GetEnumValues())
{
Assert.IsNotNull(vcTest.Convert(e, typeof(string), null, System.Globalization.CultureInfo.CurrentCulture));
}
diff --git a/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs b/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs
index 26433002b..c6785eef7 100644
--- a/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs
+++ b/CSharpBible/Calc/Calc64_Wpf/App.xaml.cs
@@ -4,6 +4,7 @@
using Microsoft.Extensions.DependencyInjection;
using Calc64Base;
using MVVM.View.Extension;
+using System;
namespace Calc64_Wpf
@@ -20,7 +21,7 @@ protected override void OnStartup(StartupEventArgs e)
IServiceCollection BaseServices = new ServiceCollection()
.AddSingleton();
- var serviceProvider = BaseServices.BuildServiceProvider();
+ IServiceProvider serviceProvider = BaseServices.BuildServiceProvider();
IoC.Configure(serviceProvider);
diff --git a/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj b/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj
index fbcc390f8..b928c606b 100644
--- a/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj
+++ b/CSharpBible/Calc/Calc64_Wpf/Calc64_Wpf.csproj
@@ -2,7 +2,7 @@
WinExe
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
enable
disable
true
@@ -14,6 +14,9 @@
+
+
+
diff --git a/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs b/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs
index 0faf4cdb9..246e58768 100644
--- a/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs
+++ b/CSharpBible/Calc/Calc64_Wpf/ViewModels/CalculatorViewModel.cs
@@ -7,7 +7,7 @@
namespace Calc64_Wpf.ViewModels;
-public class CalculatorViewModel:BaseViewModelCT
+public partial class CalculatorViewModel:BaseViewModelCT
{
}
diff --git a/CSharpBible/Calc/Calc_net.props b/CSharpBible/Calc/Calc_net.props
index 42a6e622d..fddf244ff 100644
--- a/CSharpBible/Calc/Calc_net.props
+++ b/CSharpBible/Calc/Calc_net.props
@@ -1,9 +1,9 @@
..\..
- ..\..\..\bin\$(MSBuildProjectName)\
- ..\..\..\obj.net\$(MSBuildProjectName)\
- 12.0
+ $(UpDir)\..\bin\$(MSBuildProjectName)\
+ $(UpDir)\..\obj.net\$(MSBuildProjectName)\
+ latest
enable
disable
JC-Soft
diff --git a/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj b/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj
index 84cd881b8..79d51d577 100644
--- a/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj
+++ b/CSharpBible/ConsoleDisplay/ConsoleDisplay_net.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net8.0
@@ -13,8 +13,5 @@
-
-
-
diff --git a/CSharpBible/ConsoleDisplay/View/IConsole.cs b/CSharpBible/ConsoleDisplay/View/IConsole.cs
deleted file mode 100644
index 05fe63e42..000000000
--- a/CSharpBible/ConsoleDisplay/View/IConsole.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-// ***********************************************************************
-// Assembly : ConsoleDisplay
-// Author : Mir
-// Created : 07-16-2022
-//
-// Last Modified By : Mir
-// Last Modified On : 07-24-2022
-// ***********************************************************************
-//
-// Copyright (c) JC-Soft. All rights reserved.
-//
-//
-// ***********************************************************************
-using System;
-
-namespace ConsoleDisplay.View
-{
- public interface IConsole
- {
- ConsoleColor ForegroundColor { get; set; }
- ConsoleColor BackgroundColor { get; set; }
- bool IsOutputRedirected { get; }
- bool KeyAvailable { get; }
- int LargestWindowHeight { get; }
- string Title { get; set; }
- int WindowHeight { get; set; }
- int WindowWidth { get; set; }
-
- void Beep(int freq, int len);
- void Clear();
- (int Left, int Top) GetCursorPosition();
- ConsoleKeyInfo? ReadKey();
- string ReadLine();
- void SetCursorPosition(int left, int top);
- void Write(char ch);
- void Write(string? st);
- void WriteLine(string? st = "");
- }
-}
\ No newline at end of file
diff --git a/CSharpBible/ConsoleDisplay/View/TileDisplay.cs b/CSharpBible/ConsoleDisplay/View/TileDisplay.cs
index 532a916b7..4ce2ccf71 100644
--- a/CSharpBible/ConsoleDisplay/View/TileDisplay.cs
+++ b/CSharpBible/ConsoleDisplay/View/TileDisplay.cs
@@ -15,319 +15,331 @@
using System.Collections.Generic;
using System.Drawing;
-namespace ConsoleDisplay.View
+namespace ConsoleDisplay.View;
+
+
+///
+/// Class TileDisplay.
+///
+/// The type of the enum.
+public class TileDisplay: ITileDisplay
{
+ #region Properties
+ #region static Properties
+ ///
+ /// The default tile
+ ///
+ public static T? defaultTile { get; set; }
+ ///
+ /// The default tile definition
+ ///
+ public static TileDefBase? tileDef { get; set; }
+ #endregion
///
- /// Class TileDisplay.
+ /// Gets or sets the with the specified index.
///
- /// The type of the enum.
- public class TileDisplay
- {
- #region Properties
- #region static Properties
- ///
- /// The default tile
- ///
- public static T? defaultTile { get; set; }
- ///
- /// The default tile definition
- ///
- public static TileDefBase? tileDef { get; set; }
- #endregion
-
- ///
- /// Gets or sets the with the specified index.
- ///
- /// The index.
- /// T.
- public T? this[Point Idx] { get => GetTile(Idx); set => SetTile(Idx,value); }
- ///
- /// Gets the position.
- ///
- /// The position.
- public Point Position => _rect.Location;
- ///
- /// Gets the size of the display.
- ///
- /// The size of the display.
- public Size DispSize => _size;
- ///
- /// Gets the size of the tile.
- ///
- /// The size of the tile.
- public Size TileSize => _tileSize;
- ///
- /// My console
- ///
- public static MyConsoleBase myConsole= new MyConsole();
- ///
- /// Gets or sets the tile definition.
- /// it returns the default-tileDef when the local tileDef isn't set.
- ///
- /// The tile definition.
- public TileDefBase? TileDef { get => _tileDef ?? tileDef; set => _tileDef = value; }
+ /// The index.
+ /// T.
+ public T? this[Point Idx] { get => GetTile(Idx); set => SetTile(Idx,value); }
+ ///
+ /// Gets the position.
+ ///
+ /// The position.
+ public Point Position => _rect.Location;
+ ///
+ /// Gets the size of the display.
+ ///
+ /// The size of the display.
+ public Size DispSize => _size;
+ ///
+ /// Gets the size of the tile.
+ ///
+ /// The size of the tile.
+ public Size TileSize => _tileSize;
+
+ ///
+ /// Gets or sets the tile definition.
+ /// it returns the default-tileDef when the local tileDef isn't set.
+ ///
+ /// The tile definition.
+ public TileDefBase? TileDef { get => _tileDef ?? tileDef; set => _tileDef = value; }
public Point DispOffset { get; set; } = Point.Empty;
- public Func? FncGetTile;
- public Func? FncOldPos;
- #region Private Properties and Fields
-
- ///
- /// The tiles
- ///
- private readonly Dictionary _tiles = new();
- ///
- /// The rect
- ///
- private Rectangle _rect = new();
- ///
- /// The size
- ///
- private Size _size;
- ///
- /// The tile size
- ///
- private Size _tileSize;
- ///
- /// The changed
- ///
- private bool _changed=false;
- ///
- /// The (local) tile-definition
- ///
- private TileDefBase? _tileDef;
- #endregion
- #endregion
-
- #region Methods
- #region Static Methods
- ///
- /// Initializes static members of the class.
- ///
- static TileDisplay() {
- defaultTile = default;
- }
+ public Func? FncGetTile { get; set; }
+ public Func? FncOldPos { get; set; }
- ///
- /// Writes the tile.
- ///
- /// The offset.
- /// The p.
- /// The tile.
- public static void WriteTile(Point Offset,PointF p, T tile)=>WriteTile(Offset,p,tile,Size.Empty);
-
- ///
- /// Writes the tile.
- ///
- /// The offset.
- /// The p.
- /// The tile.
- /// The ts.
- public static void WriteTile(Point Offset,PointF p, T tile, Size ts)
- {
- var def = tileDef?.GetTileDef(tile as Enum) ?? default;
- Size s = (ts == Size.Empty)?new Size(def.lines[0].Length, def.lines.Length):ts;
- Point pc = new();
- for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++)
- for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++)
- WriteTileChunk(Offset, p, def, s, pc);
- }
+ public IConsole console { get; private set; }
- ///
- /// Writes the tile chunk.
- ///
- /// The offset.
- /// The p.
- /// The definition.
- /// The s.
- /// The pc.
- private static void WriteTileChunk(Point Offset, PointF p, (string[] lines, (ConsoleColor fgr, ConsoleColor bgr)[] colors) def, Size s, Point pc)
- {
- myConsole.ForegroundColor = def.colors[pc.X + pc.Y * s.Width].fgr;
- myConsole.BackgroundColor = def.colors[pc.X + pc.Y * s.Width].bgr;
- myConsole.SetCursorPosition(Offset.X + (int)(p.X * s.Width) + pc.X, Offset.Y + (int)(p.Y * s.Height) + pc.Y);
- myConsole.Write(def.lines[pc.Y][pc.X]);
- }
- #endregion
-
- ///
- /// Initializes a new instance of the class.
- ///
- public TileDisplay() : this(Point.Empty,Size.Empty){}
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The position.
- /// The size.
- public TileDisplay(Point position, Size size) : this(position, size,tileDef?.TileSize ?? new Size(4,2)) { }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The position.
- /// The size.
- /// The tile-definition.
- public TileDisplay(Point position, Size size, TileDefBase aTileDef) : this(position, size, aTileDef.TileSize ) {
- TileDef = aTileDef;
- }
+ #region Private Properties and Fields
- ///
- /// Initializes a new instance of the class.
- ///
- /// The position.
- /// The size.
- /// Size of the tile.
- public TileDisplay(Point position,Size size, Size tileSize)
- {
- _rect.Location = position;
- _tileSize = tileSize != Size.Empty ? tileSize : new Size(4, 2);
- if (size == Size.Empty)
- _size = new Size(myConsole.WindowWidth / _tileSize.Width,myConsole.WindowHeight/_tileSize.Height);
- else
- _size = size;
- _rect.Size = new Size(_size.Width * _tileSize.Width,_size.Height * _tileSize.Height);
- }
+ ///
+ /// The tiles
+ ///
+ private readonly Dictionary _tiles = new();
+ ///
+ /// The rect
+ ///
+ private Rectangle _rect = new();
+ ///
+ /// The size
+ ///
+ private Size _size;
+ ///
+ /// The tile size
+ ///
+ private Size _tileSize;
+ ///
+ /// The changed
+ ///
+ private bool _changed=false;
+ ///
+ /// The (local) tile-definition
+ ///
+ private TileDefBase? _tileDef;
+ #endregion
+ #endregion
- ///
- /// Writes the tile.
- ///
- /// The p.
- /// The tile.
- public void WriteTile(PointF p, T tile)
- {
- var def = TileDef?.GetTileDef(tile as Enum) ?? default;
- Size s = TileSize;
- Point pc = new((int)p.X*s.Width,(int)p.Y*s.Height);
- var _rect2 = new Rectangle(Point.Empty, _rect.Size);
- _rect2.Inflate(s);
- if (_rect2.Contains(pc))
- {
- _rect2.Size = _rect.Size;
- _rect2.Location = Point.Empty;
- _rect2.Offset(new Point((int)(-p.X * s.Width),(int)(-p.Y * s.Height)));
- for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++)
- for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++)
- if (_rect2.Contains(pc))
- WriteTileChunk(Position, p, def, s, pc);
- }
- }
+ #region Methods
+ #region Static Methods
+ ///
+ /// Initializes static members of the class.
+ ///
+ static TileDisplay() {
+ defaultTile = default;
+ }
- #region private Methods
-
- ///
- /// Gets the tile.
- ///
- /// The index.
- /// T.
- private T? GetTile(Point Idx) {
- if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return defaultTile;
- if (_tiles.TryGetValue(Idx, out T? value)) return value;
- return defaultTile;
- }
+ ///
+ /// Writes the tile.
+ ///
+ /// The offset.
+ /// The p.
+ /// The tile.
+ public static void WriteTile(IConsole console, Point Offset,PointF p, T tile)=>WriteTile(console, Offset,p,tile,Size.Empty);
+
+ ///
+ /// Writes the tile.
+ ///
+ /// The offset.
+ /// The p.
+ /// The tile.
+ /// The ts.
+ public static void WriteTile(IConsole console, Point Offset,PointF p, T tile, Size ts)
+ {
+ var def = tileDef?.GetTileDef(tile as Enum) ?? default;
+ Size s = (ts == Size.Empty)?new Size(def.lines[0].Length, def.lines.Length):ts;
+ Point pc = new();
+ for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++)
+ for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++)
+ WriteTileChunk(console, Offset, p, def, s, pc);
+ }
- ///
- /// Sets the tile.
- ///
- /// The index.
- /// The value.
- private void SetTile(Point Idx, T? value)
+ ///
+ /// Writes the tile chunk.
+ ///
+ /// The offset.
+ /// The p.
+ /// The definition.
+ /// The s.
+ /// The pc.
+ private static void WriteTileChunk(IConsole console,Point Offset, PointF p, (string[] lines, (ConsoleColor fgr, ConsoleColor bgr)[] colors) def, Size s, Point pc)
+ {
+ console.ForegroundColor = def.colors[pc.X + pc.Y * s.Width].fgr;
+ console.BackgroundColor = def.colors[pc.X + pc.Y * s.Width].bgr;
+ console.SetCursorPosition(Offset.X + (int)(p.X * s.Width) + pc.X, Offset.Y + (int)(p.Y * s.Height) + pc.Y);
+ console.Write(def.lines[pc.Y][pc.X]);
+ }
+ #endregion
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public TileDisplay() : this(new MyConsole(),Point.Empty,Size.Empty){}
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public TileDisplay(IConsole console) : this(console, Point.Empty, Size.Empty) { }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The position.
+ /// The size.
+ public TileDisplay(IConsole console,Point position, Size size) : this(console, position, size,tileDef?.TileSize ?? new Size(4,2)) { }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The position.
+ /// The size.
+ /// The tile-definition.
+ public TileDisplay(IConsole console,Point position, Size size, TileDefBase aTileDef) : this(console,position, size, aTileDef.TileSize ) {
+ TileDef = aTileDef;
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The position.
+ /// The size.
+ /// Size of the tile.
+ public TileDisplay(IConsole console,Point position,Size size, Size tileSize)
+ {
+ this.console = console;
+ _rect.Location = position;
+ _tileSize = tileSize != Size.Empty ? tileSize : new Size(4, 2);
+ if (size == Size.Empty)
+ _size = new Size(console.WindowWidth / _tileSize.Width,console.WindowHeight/_tileSize.Height);
+ else
+ _size = size;
+ _rect.Size = new Size(_size.Width * _tileSize.Width,_size.Height * _tileSize.Height);
+ }
+
+ #region private Methods
+
+ ///
+ /// Gets the tile.
+ ///
+ /// The index.
+ /// T.
+ private T? GetTile(Point Idx) {
+ if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return defaultTile;
+ if (_tiles.TryGetValue(Idx, out T? value)) return value;
+ return defaultTile;
+ }
+
+ ///
+ /// Sets the tile.
+ ///
+ /// The index.
+ /// The value.
+ private void SetTile(Point Idx, T? value)
+ {
+ if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return;
+ if (_tiles.TryGetValue(Idx, out T? v) && (v is T e) && e.Equals(value) ) return;
+ if (value!=null)
+ _tiles[Idx] = value;
+ else
+ _tiles.Remove(Idx);
+ _changed = true;
+ }
+ #endregion
+
+ #region public Methods
+ ///
+ /// Writes the tile.
+ ///
+ /// The p.
+ /// The tile.
+ public void WriteTile(PointF p, T tile)
+ {
+ var def = TileDef?.GetTileDef(tile as Enum) ?? default;
+ Size s = TileSize;
+ Point pc = new((int)p.X*s.Width,(int)p.Y*s.Height);
+ var _rect2 = new Rectangle(Point.Empty, _rect.Size);
+ _rect2.Inflate(s);
+ if (_rect2.Contains(pc))
{
- if (Idx.X < 0 || Idx.X >= _size.Width || Idx.Y < 0 || Idx.Y >= _size.Height) return;
- if (_tiles.TryGetValue(Idx, out T? v) && (v is T e) && e.Equals(value) ) return;
- if (value!=null)
- _tiles[Idx] = value;
- else
- _tiles.Remove(Idx);
- _changed = true;
+ _rect2.Size = _rect.Size;
+ _rect2.Location = Point.Empty;
+ _rect2.Offset(new Point((int)(-p.X * s.Width),(int)(-p.Y * s.Height)));
+ for (pc.Y = 0; pc.Y < def.lines.Length; pc.Y++)
+ for (pc.X = 0; pc.X < def.lines[pc.Y].Length; pc.X++)
+ if (_rect2.Contains(pc))
+ WriteTileChunk(console, Position, p, def, s, pc);
}
+ }
- public void Update(bool e)
- {
- var diffFields = new List<(Point, T, Point?)>();
- var p = new Point();
- Point p3 = new();
- if (FncGetTile == null) return;
+ public void Update(bool e)
+ {
+ var diffFields = new List<(Point, T, Point?)>();
+ var p = new Point();
+ Point p3 = new();
+ if (FncGetTile == null) return;
+
+ for (p.Y = 0; p.Y < DispSize.Height; p.Y++)
+ for (p.X = 0; p.X < DispSize.Width; p.X++)
+ {
+ p3.X = p.X + DispOffset.X;
+ p3.Y = p.Y + DispOffset.Y;
+ T td = FncGetTile(p3)!;
+ T? ot = GetTile(p);
+ var po = FncOldPos?.Invoke(p3);
+ bool x1 = !td.Equals(ot);
+ bool x2 = (po != null) && (po != p3);
- for (p.Y = 0; p.Y < DispSize.Height; p.Y++)
- for (p.X = 0; p.X < DispSize.Width; p.X++)
+ if (x1 || x2)
{
- p3.X = p.X + DispOffset.X;
- p3.Y = p.Y + DispOffset.Y;
- T td = FncGetTile(p3)!;
- T? ot = GetTile(p);
- var po = FncOldPos?.Invoke(p3);
- bool x1 = !td.Equals(ot);
- bool x2 = (po != null) && (po != p3);
-
- if (x1 || x2)
- {
- Point pp = new(p.X, p.Y);
-
- diffFields.Add((pp, (T)td, Point.Subtract(po ?? p3, (Size)DispOffset)));
- if (!e)
- _tiles[p] = (T)td;
- }
+ Point pp = new(p.X, p.Y);
+ diffFields.Add((pp, (T)td, Point.Subtract(po ?? p3, (Size)DispOffset)));
+ if (!e)
+ _tiles[p] = (T)td;
}
- if (e)
- {
- foreach (var f in diffFields)
- if (f.Item1 == f.Item3)
- {
- WriteTile(f.Item1, f.Item2);
- }
- foreach (var f in diffFields)
- if (f.Item1 != f.Item3 && Math.Abs(f.Item1.X - f.Item3?.X?? -1) < 2)
- {
- var zPos = new PointF((f.Item1.X + f.Item3?.X??0) * 0.5f, (f.Item1.Y + f.Item3?.Y??0) * 0.5f);
- WriteTile(zPos, f.Item2);
- }
+
}
- else
- foreach (var f in diffFields)
+ if (e)
+ {
+ foreach (var f in diffFields)
+ if (f.Item1 == f.Item3)
{
- if ((f.Item3 !=null) && ((f.Item1.X != f.Item3?.X) || (f.Item1.Y != f.Item3?.Y)))
- {
- var p1 = new Point(f.Item1.X, f.Item3?.Y??0);
- WriteTile(p1, FncGetTile(Point.Add(p1,(Size)DispOffset)));
- var p2 = new Point(f.Item3?.X??0, f.Item1.Y);
- WriteTile(p2, FncGetTile(Point.Add(p2, (Size)DispOffset)));
- }
WriteTile(f.Item1, f.Item2);
}
+ foreach (var f in diffFields)
+ if (f.Item1 != f.Item3 && Math.Abs(f.Item1.X - f.Item3?.X?? -1) < 2)
+ {
+ var zPos = new PointF((f.Item1.X + f.Item3?.X??0) * 0.5f, (f.Item1.Y + f.Item3?.Y??0) * 0.5f);
+ WriteTile(zPos, f.Item2);
+ }
}
+ else
+ foreach (var f in diffFields)
+ {
+ if ((f.Item3 !=null) && ((f.Item1.X != f.Item3?.X) || (f.Item1.Y != f.Item3?.Y)))
+ {
+ var p1 = new Point(f.Item1.X, f.Item3?.Y??0);
+ WriteTile(p1, FncGetTile(Point.Add(p1,(Size)DispOffset)));
+ var p2 = new Point(f.Item3?.X??0, f.Item1.Y);
+ WriteTile(p2, FncGetTile(Point.Add(p2, (Size)DispOffset)));
+ }
+ WriteTile(f.Item1, f.Item2);
+ }
+ }
- public void FullRedraw()
- {
- if (FncGetTile == null) return;
- // Draw playfield
- Point p = new();
+ public void FullRedraw()
+ {
+ if (FncGetTile == null) return;
+ // Draw playfield
+ Point p = new();
Point p2 = new();
for (p.Y = 0; p.Y < DispSize.Height; p.Y++)
- for (p.X = 0; p.X < DispSize.Width; p.X++) {
+ for (p.X = 0; p.X < DispSize.Width; p.X++) {
p2.X = p.X + DispOffset.X;
p2.Y = p.Y + DispOffset.Y;
- WriteTile(p, _tiles[p] = FncGetTile(p2));
+ WriteTile(p, _tiles[p] = FncGetTile(p2));
}
- }
- #endregion
- #endregion
}
+ #endregion
+ #endregion
+}
public class TileDisplay : TileDisplay {
///
/// Initializes a new instance of the class.
///
public TileDisplay() : base() { }
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public TileDisplay(IConsole console) : base(console) { }
///
/// Initializes a new instance of the class.
///
/// The position.
/// The size.
- public TileDisplay(Point position, Size size) : base(position, size) { }
+ public TileDisplay(IConsole console,Point position, Size size) : base(console, position, size) { }
///
/// Initializes a new instance of the class.
@@ -335,7 +347,7 @@ public TileDisplay(Point position, Size size) : base(position, size) { }
/// The position.
/// The size.
/// The tile-definition.
- public TileDisplay(Point position, Size size, TileDefBase aTileDef) : base(position, size, aTileDef) { }
+ public TileDisplay(IConsole console, Point position, Size size, TileDefBase aTileDef) : base(console, position, size, aTileDef) { }
///
/// Initializes a new instance of the class.
@@ -343,6 +355,5 @@ public TileDisplay(Point position, Size size, TileDefBase aTileDef) : base(posit
/// The position.
/// The size.
/// Size of the tile.
- public TileDisplay(Point position, Size size, Size tileSize) : base(position, size, tileSize) { }
+ public TileDisplay(IConsole console, Point position, Size size, Size tileSize) : base(console, position, size, tileSize) { }
}
-}
diff --git a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj
index 6aba1fa08..1f2c4e62b 100644
--- a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj
+++ b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj
@@ -19,9 +19,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak
index 83426d1ba..43bcd7f43 100644
--- a/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak
+++ b/CSharpBible/ConsoleDisplayTests/ConsoleDisplayTests.csproj.bak
@@ -22,8 +22,7 @@
-
-
+
diff --git a/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj b/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj
index a43e43149..ea610354c 100644
--- a/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj
+++ b/CSharpBible/ConsoleDisplayTests/ConsoleDisplay_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
true
false
@@ -18,9 +18,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/DB/FoxCon/FoxCon.csproj b/CSharpBible/DB/FoxCon/FoxCon.csproj
index e0d592c01..23de3cf0e 100644
--- a/CSharpBible/DB/FoxCon/FoxCon.csproj
+++ b/CSharpBible/DB/FoxCon/FoxCon.csproj
@@ -20,6 +20,7 @@
+
diff --git a/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj b/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj
index 63c425502..30488ea38 100644
--- a/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj
+++ b/CSharpBible/DB/MdbBrowser/MdbBrowser.csproj
@@ -2,35 +2,11 @@
WinExe
- net481-windows;net472-windows;net462-windows;net6.0-windows;net7.0-windows;net8.0-windows
+ net481-windows;net472-windows;net462-windows;net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
enable
true
AnyCPU;x86
-
- 7
-
-
- 7
-
-
- 7
-
-
- 7
-
-
- 7
-
-
- 7
-
-
- 7
-
-
- 7
-
diff --git a/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj b/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj
index ab6cb20ad..51aa55071 100644
--- a/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj
+++ b/CSharpBible/Data/TraceCsv2realCsvTests/TraceCsv2realCsvTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/DataGridExWPF/DataGridExWPF.csproj b/CSharpBible/DataGridExWPF/DataGridExWPF.csproj
index 9946e3187..2105d657c 100644
--- a/CSharpBible/DataGridExWPF/DataGridExWPF.csproj
+++ b/CSharpBible/DataGridExWPF/DataGridExWPF.csproj
@@ -1,6 +1,5 @@
-
Debug
AnyCPU
diff --git a/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj b/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj
index c8a89a279..dc9bf5178 100644
--- a/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj
+++ b/CSharpBible/DependencyInjection/CustomerRepositoryTests/CustomerRepositoryTests.csproj
@@ -2,7 +2,7 @@
Library
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net9.0
@@ -11,14 +11,13 @@
-
+
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
@@ -26,6 +25,8 @@
+
+
diff --git a/CSharpBible/Games/Asteroids/App.xaml b/CSharpBible/Games/Asteroids/App.xaml
index 7f4d76d39..45ca579c5 100644
--- a/CSharpBible/Games/Asteroids/App.xaml
+++ b/CSharpBible/Games/Asteroids/App.xaml
@@ -1,9 +1,8 @@
-
-
-
-
+
+
diff --git a/CSharpBible/Games/CreateCards/CreateCards.csproj b/CSharpBible/Games/CreateCards/CreateCards.csproj
index 7e80e6ee4..e22ab8d1f 100644
--- a/CSharpBible/Games/CreateCards/CreateCards.csproj
+++ b/CSharpBible/Games/CreateCards/CreateCards.csproj
@@ -2,7 +2,7 @@
Exe
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net9.0
diff --git a/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs b/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs
index d35e21499..fdd93284f 100644
--- a/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs
+++ b/CSharpBible/Games/CreateCards/Utilities/GraphicUtils.cs
@@ -27,7 +27,7 @@ public static Graphics GraphicsWriter(this Stream metaStream)
}
public static void DrawToScreen(this Image ig, Rectangle? r = null)
- {
+ {
using (Graphics g = Graphics.FromHdc(GetDC(IntPtr.Zero)))
{
if (r == null)
diff --git a/CSharpBible/Games/CsEpiphany/Model/Entity.cs b/CSharpBible/Games/CsEpiphany/Model/Entity.cs
index bc6a1352a..80003f54b 100644
--- a/CSharpBible/Games/CsEpiphany/Model/Entity.cs
+++ b/CSharpBible/Games/CsEpiphany/Model/Entity.cs
@@ -18,27 +18,24 @@ private void m_set_position_y(int y) { }
protected bool m_just_checked;
- protected Entity_Handle m_id;
+ protected Entity_Handle? m_id;
- protected Entity_Type m_type;
+ protected Entity_Type? m_type;
protected int m_position_x;
protected int m_position_y;
protected int m_speed;
- protected Sprite m_sprite;
+ protected Sprite? m_sprite;
//True if an entity exists - not used
protected bool m_exists;
- protected Level current_level;
+ protected Level? current_level;
-
- public Entity();
-
- public Entity_Handle get_id() => m_id;
+ public Entity_Handle? get_id() => m_id;
public void set_id(Entity_Handle handle) => m_id = handle;
@@ -46,9 +43,9 @@ private void m_set_position_y(int y) { }
public int get_position_y() => m_position_y;
- public Entity_Type get_type() => m_type;
+ public Entity_Type? get_type() => m_type;
- public Sprite get_sprite() => m_sprite;
+ public Sprite? get_sprite() => m_sprite;
public void set_speed(int speed) => m_speed = speed;
diff --git a/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs b/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs
index 3d8bdce24..8bac54e1a 100644
--- a/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs
+++ b/CSharpBible/Games/CsEpiphany/Model/EpiConfig.cs
@@ -10,71 +10,71 @@ namespace CsEpiphany.Model;
// Singleton class to store game configuration
public class EpiConfig : IEpiConfig
{
- private int m_screen_size_x=640;
- private int m_screen_size_y=480;
- private int m_score_size_y=32;
+ private int _screen_size_x=640;
+ private int _screen_size_y=480;
+ private int _score_size_y=32;
// int m_sprite_size;
- private int m_map_size_x=32;
- private int m_map_size_y=32;
- static private int m_max_anim_drawn=8;
+ private int _map_size_x=32;
+ private int _map_size_y=32;
+ static private int _max_anim_drawn=8;
// int m_max_anim;
- private int m_moving_step= Sprite.size / m_max_anim_drawn;
- private int m_msec_per_frame= 140 / m_max_anim_drawn;
- private int m_volume_sound=8;
- private int m_volume_music=8;
+ private int _moving_step= Sprite.size / _max_anim_drawn;
+ private int _msec_per_frame= 140 / _max_anim_drawn;
+ private int _volume_sound=8;
+ private int _volume_music=8;
private int m_last_level=0;
public void set_default_values() {
//size in pixels
- m_screen_size_x = 640;
- m_screen_size_y = 480;
- m_score_size_y = 32;
+ _screen_size_x = 640;
+ _screen_size_y = 480;
+ _score_size_y = 32;
//size in cells
- m_map_size_x = 32;
- m_map_size_y = 32;
+ _map_size_x = 32;
+ _map_size_y = 32;
//it must be a multiple of 2
- m_max_anim_drawn = 8;
+ _max_anim_drawn = 8;
- m_moving_step = Sprite.size / m_max_anim_drawn;
+ _moving_step = Sprite.size / _max_anim_drawn;
- //m_msec_per_frame=176/m_max_anim_drawn;
- //m_msec_per_frame=150/m_max_anim_drawn;
- //m_msec_per_frame=240/m_max_anim_drawn;
- m_msec_per_frame = 140 / m_max_anim_drawn;
+ //_msec_per_frame=176/_max_anim_drawn;
+ //_msec_per_frame=150/_max_anim_drawn;
+ //_msec_per_frame=240/_max_anim_drawn;
+ _msec_per_frame = 140 / _max_anim_drawn;
- m_volume_sound = 8;
+ _volume_sound = 8;
- m_volume_music = 8;
+ _volume_music = 8;
m_last_level = 0;
}
- public int get_screen_size_x()=> m_screen_size_x;
- public int get_screen_size_y()=> m_screen_size_y;
- public int get_score_size_y()=> m_score_size_y;
+ public int get_screen_size_x()=> _screen_size_x;
+ public int get_screen_size_y()=> _screen_size_y;
+ public int get_score_size_y()=> _score_size_y;
// int get_sprite_size();
- public int get_map_size_x()=> m_map_size_x;
- public int get_map_size_y()=> m_map_size_y;
- public int get_max_anim_drawn()=> m_max_anim_drawn;
+ public int get_map_size_x()=> _map_size_x;
+ public int get_map_size_y()=> _map_size_y;
+ public int get_max_anim_drawn()=> _max_anim_drawn;
// int get_max_anim();
- public int get_moving_step()=> m_moving_step;
- public int get_msec_per_frame()=> m_msec_per_frame;
- public int get_volume_sound();
- public int get_volume_music();
- public int get_last_level();
- public void set_last_level(int level);
- public void set_volume_sound(int volume);
- public void set_volume_music(int volume);
- public void read_values_from_file(char* filename);
- public void save_values_to_file(char* filename);
- public void refresh_game_window_parameters();
+ public int get_moving_step()=> _moving_step;
+ public int get_msec_per_frame()=> _msec_per_frame;
+ public int get_volume_sound()=>_volume_sound;
+ public int get_volume_music()=> _volume_music;
+ public int get_last_level()=>m_last_level;
+ public void set_last_level(int level)=>m_last_level=level;
+ public void set_volume_sound(int volume)=>_volume_sound=volume;
+ public void set_volume_music(int volume)=>_volume_music=volume;
+ public void read_values_from_file(string filename) { }
+ public void save_values_to_file(string filename) { }
+ public void refresh_game_window_parameters() { }
// begin Singleton stuff
diff --git a/CSharpBible/Games/Game_Base/Game_Base_net.csproj b/CSharpBible/Games/Game_Base/Game_Base_net.csproj
index 39bad5247..62b5f38c4 100644
--- a/CSharpBible/Games/Game_Base/Game_Base_net.csproj
+++ b/CSharpBible/Games/Game_Base/Game_Base_net.csproj
@@ -2,7 +2,7 @@
Library
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net9.0
diff --git a/CSharpBible/Games/Game_Base/Model/Playfield2D.cs b/CSharpBible/Games/Game_Base/Model/Playfield2D.cs
index cfb38fba6..d6cd0c137 100644
--- a/CSharpBible/Games/Game_Base/Model/Playfield2D.cs
+++ b/CSharpBible/Games/Game_Base/Model/Playfield2D.cs
@@ -31,7 +31,7 @@ namespace Game_Base.Model
///
///
///
- public class Playfield2D: IHasChildren where T : class
+ public class Playfield2D: IPlayfield2D, IHasChildren where T : class
{
#region Properties
#region private Properties
@@ -77,6 +77,7 @@ public class Playfield2D: IHasChildren where T : class
///
/// The default size.
public static Size DefaultSize { get; set; } = new Size(20, 20);
+
#region this
///
/// Gets or sets the with the specified p.
diff --git a/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj b/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj
index e348e74d7..2187d1d0f 100644
--- a/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj
+++ b/CSharpBible/Games/Game_BaseTests/Game_BaseTests.csproj
@@ -8,9 +8,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj b/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj
index cf30f016a..478a43c20 100644
--- a/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj
+++ b/CSharpBible/Games/Game_BaseTests/Game_Base_netTests.csproj
@@ -2,15 +2,14 @@
Library
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net9.0
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Games/Games.sln b/CSharpBible/Games/Games.sln
index 002553f2a..0cd342ca4 100644
--- a/CSharpBible/Games/Games.sln
+++ b/CSharpBible/Games/Games.sln
@@ -101,6 +101,18 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MVVM_Converter_Grid2", "..\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Asteroids_Base", "Asteroids_Base\Asteroids_Base.csproj", "{15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MVVM_TiledDisplay_net", "MVVM_TiledDisplay_net\MVVM_TiledDisplay_net.csproj", "{B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snake_Console_net", "Snake_Console\Snake_Console_net.csproj", "{93E28010-05F4-4BF7-B97A-CC55AA958BC6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sudoku_Base", "Sudoku_Base\Sudoku_Base.csproj", "{F3E144AA-ABBE-48E4-8273-A1D910992C80}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sudoku_BaseTests", "Sudoku_BaseTests\Sudoku_BaseTests.csproj", "{84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VTileEdit", "VTileEdit\VTileEdit.csproj", "{571ED625-7F3B-4A13-8617-5FF852EED1A8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Werner_Flaschbier_ConsoleTests", "Werner_Flaschbier_BaseTests\Werner_Flaschbier_ConsoleTests.csproj", "{2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -263,6 +275,30 @@ Global
{15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15EA50ED-95FB-4195-87F6-F1D48DA8B5F1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B41D46FC-87CA-4E99-AA9F-4FCA6D25BE3D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {93E28010-05F4-4BF7-B97A-CC55AA958BC6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F3E144AA-ABBE-48E4-8273-A1D910992C80}.Release|Any CPU.Build.0 = Release|Any CPU
+ {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {84FE0ADA-5327-4B5B-AFEF-DEBF60C5375A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {571ED625-7F3B-4A13-8617-5FF852EED1A8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2CA579B8-2C96-4CB8-8FC3-510B9C353BCD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/CSharpBible/Games/Snake_Base/Model/Apple.cs b/CSharpBible/Games/Snake_Base/Model/Apple.cs
deleted file mode 100644
index 969e7486e..000000000
--- a/CSharpBible/Games/Snake_Base/Model/Apple.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-// ***********************************************************************
-// Assembly : Snake_Base
-// Author : Mir
-// Created : 08-25-2022
-//
-// Last Modified By : Mir
-// Last Modified On : 09-09-2022
-// ***********************************************************************
-//
-// Copyright (c) JC-Soft. All rights reserved.
-//
-//
-// ***********************************************************************
-using System.Drawing;
-
-///
-/// The Model namespace.
-///
-///
-namespace Snake_Base.Model
-{
- ///
- /// Class Apple.
- /// Implements the
- ///
- ///
- public class Apple : SnakeGameObject
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public Apple():base()
- {
- }
-
- ///
- /// Initializes a new instance of the class.
- ///
- /// The point.
- /// The PLF.
- public Apple(Point point, Playfield2D? plf = null) : base(point, plf)
- {
- }
- }
-}
diff --git a/CSharpBible/Games/Snake_Base/Model/Direction.cs b/CSharpBible/Games/Snake_Base/Model/Direction.cs
deleted file mode 100644
index d58821041..000000000
--- a/CSharpBible/Games/Snake_Base/Model/Direction.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-// ***********************************************************************
-// Assembly : Snake_Base
-// Author : Mir
-// Created : 08-25-2022
-//
-// Last Modified By : Mir
-// Last Modified On : 09-09-2022
-// ***********************************************************************
-//
-// Copyright (c) JC-Soft. All rights reserved.
-//
-//
-// ***********************************************************************
-using System.Drawing;
-
-///
-/// The Model namespace.
-///
-///
-namespace Snake_Base.Model
-{
- ///
- /// Enum Direction
- ///
- public enum Direction
- {
- ///
- /// The north
- ///
- North,
- ///
- /// The west
- ///
- West,
- ///
- /// The south
- ///
- South,
- ///
- /// The east
- ///
- East
- }
-
- ///
- /// Class Offsets.
- ///
- public static class Offsets
- {
- ///
- /// The dir offsets
- ///
- ///
- static Point[] DirOffsets = { new Point(0, -1), new Point(-1, 0), new Point(0, 1), new Point(1, 0) };
- ///
- /// Dirs the offset.
- ///
- /// The d.
- /// Point.
- public static Point DirOffset(Direction d) => DirOffsets[(int)d];
-
- ///
- /// Dirs the offset.
- ///
- /// The dir.
- /// The position.
- /// Point.
- public static Point DirOffset(Direction? dir, Point position)
- {
- var p = new Point(position.X,position.Y);
- if (dir.HasValue)
- p.Offset(DirOffset((Direction)dir));
- return p;
- }
- }
-}
\ No newline at end of file
diff --git a/CSharpBible/Games/Snake_Base/Model/IPlacedObject.cs b/CSharpBible/Games/Snake_Base/Model/IPlacedObject.cs
deleted file mode 100644
index 550046000..000000000
--- a/CSharpBible/Games/Snake_Base/Model/IPlacedObject.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-// ***********************************************************************
-// Assembly : Snake_Base
-// Author : Mir
-// Created : 08-24-2022
-//
-// Last Modified By : Mir
-// Last Modified On : 09-09-2022
-// ***********************************************************************
-//
-// Copyright (c) JC-Soft. All rights reserved.
-//
-//
-// ***********************************************************************
-using System;
-using System.Drawing;
-using System.Runtime.CompilerServices;
-
-///
-/// The Model namespace.
-///
-///
-namespace Snake_Base.Model
-{
- ///
- /// Interface IPlacedObject
- ///
- public interface IPlacedObject
- {
- ///
- /// Occurs when [on place change].
- ///
- event EventHandler<(Point oP, Point nP)> OnPlaceChange;
-#if NET6_0_OR_GREATER
- ///
- /// Gets or sets the place.
- ///
- /// The place.
- Point Place { get => GetPlace(); set => SetPlace(value); }
-#endif
- ///
- /// Sets the place.
- ///
- /// The value.
- /// The name.
- void SetPlace(Point value, [CallerMemberName] string Name="");
- ///
- /// Gets the place.
- ///
- /// Point.
- Point GetPlace();
- ///
- /// Gets the old place.
- ///
- /// Point.
- Point GetOldPlace();
- }
-}
\ No newline at end of file
diff --git a/CSharpBible/Games/Snake_Base/Model/Playfield2D.cs b/CSharpBible/Games/Snake_Base/Model/Playfield2D.cs
deleted file mode 100644
index 1188f91d0..000000000
--- a/CSharpBible/Games/Snake_Base/Model/Playfield2D.cs
+++ /dev/null
@@ -1,279 +0,0 @@
-// ***********************************************************************
-// Assembly : Snake_Base
-// Author : Mir
-// Created : 08-24-2022
-//
-// Last Modified By : Mir
-// Last Modified On : 09-09-2022
-// ***********************************************************************
-//
-// Copyright (c) JC-Soft. All rights reserved.
-//
-//
-// ***********************************************************************
-using BaseLib.Helper;
-using BaseLib.Interfaces;
-using System;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Runtime.CompilerServices;
-
-///
-/// The Model namespace.
-///
-///
-namespace Snake_Base.Model
-{
- ///
- /// Class Playfield2D.
- /// Implements the
- ///
- ///
- ///
- public class Playfield2D: IHasChildren where T : class
- {
- #region Properties
- #region private Properties
- ///
- /// The pf data
- ///
- ///
- private readonly Dictionary _pfData = new Dictionary();
- ///
- /// The pf rect
- ///
- ///
- private Rectangle _pfRect;
- ///
- /// The pf size
- ///
- ///
- private Size _pfSize;
- #endregion
-
- ///
- /// Gets or sets the size of the pf.
- ///
- /// The size of the pf.
- public Size PfSize { get => _pfRect.Size; set => value.SetProperty(ref _pfSize, PfResize); }
- ///
- /// Gets the rect.
- ///
- /// The rect.
- public Rectangle Rect { get => _pfRect; }
- ///
- /// Gets the items.
- ///
- /// The items.
- public IEnumerable Items => GetItems();
- ///
- /// Occurs when [on data changed].
- ///
- public event EventHandler<(string prop,object? oldVal,object? newVal)>? OnDataChanged;
-
- ///
- /// Gets or sets the default size.
- ///
- /// The default size.
- public static Size DefaultSize { get; set; } = new Size(20, 20);
- #region this
- ///
- /// Gets or sets the with the specified p.
- ///
- /// The p.
- /// System.Nullable<T>.
- public T? this[Point P]
- {
- get => _pfData.ContainsKey(P) ? _pfData[P] : default; set
- {
- if (IsInside(P))
- {
- if (EqualityComparer.Default.Equals(this[P], value)) return;
- if (value is IPlacedObject plo)
- {
-#if NET6_0_OR_GREATER
- plo.Place = P;
-#else
- plo.SetPlace(P);
-#endif
- plo.OnPlaceChange += ChildPlaceChanged;
- }
- if (value is IParentedObject && EqualityComparer.Default.Equals(this[P], value)) return;
- if (value != null)
- {
- _pfData[P] = value;
-#if NET6_0_OR_GREATER
- if (value is IParentedObject po && po.Parent != this)
- po.Parent = (IHasChildren
-
+
+
+
+
diff --git a/CSharpBible/Games/Snake_Console/View/Visual.cs b/CSharpBible/Games/Snake_Console/View/Visual.cs
index c4575958b..7259174ed 100644
--- a/CSharpBible/Games/Snake_Console/View/Visual.cs
+++ b/CSharpBible/Games/Snake_Console/View/Visual.cs
@@ -15,27 +15,28 @@
using System;
using System.Collections.Generic;
using System.Drawing;
-using Snake_Base.ViewModel;
+using Snake_Base.ViewModels;
+using System.ComponentModel;
namespace Snake_Console.View
{
///
/// Class Visual.
///
- public static class Visual {
+ public class Visual : IVisual {
#region Properties
/// The game
///
- private static Game? _game;
+ private ISnakeViewModel? _game;
///
/// My console
///
- public static MyConsoleBase myConsole;
+ public IConsole myConsole;
- private static TileDisplay _tileDisplay;
+ private ITileDisplay _tileDisplay;
///
/// The key action
///
@@ -54,24 +55,33 @@ public static class Visual {
#endregion
#region Methods
- static Visual() {
- myConsole = new MyConsole();
- TileDisplay.myConsole = myConsole;
- }
- ///
- /// Sets the game.
- ///
- /// The g.
- public static void SetGame(Game g)
- {
- _game = g;
- _tileDisplay = new TileDisplay(new Point(1, 1), g.size, new TileDef());
- _tileDisplay.DispOffset = new Point(-1, -1);
- _tileDisplay.FncGetTile = (p)=>(Enum)_game.GetTile(p);
- _tileDisplay.FncOldPos = _game.OldPos;
- g.visUpdate += G_visUpdate;
- g.visFullRedraw += FullRedraw;
+ public Visual(ISnakeViewModel viewModel, ITileDisplay tileDisplay)
+ {
+ myConsole = tileDisplay.console;
+ _tileDisplay = tileDisplay;
+
+ _tileDisplay.DispOffset = new Point(-1, -1);
+ _tileDisplay.FncGetTile = (p) => (Enum)_game.Tiles[(Point)p];
+ _tileDisplay.FncOldPos = _game.GetOldPos;
+
+ _game = viewModel;
+ _game.PropertyChanged += OnPropertyChanged;
FullRedraw();
+ }
+
+ private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ if (e.PropertyName == nameof(_game.Tiles))
+ {
+ _tileDisplay.Update(_game.HalfStep);
+
+ ShowStatistics();
+ }
+ else if (e.PropertyName == nameof(_game.Level))
+ {
+ FullRedraw();
+ }
+
}
@@ -82,9 +92,6 @@ public static void SetGame(Game g)
/// if set to true [e].
private static void G_visUpdate(object? sender, bool e)
{
- _tileDisplay.Update(e);
-
- ShowStatistics();
}
///
@@ -92,7 +99,7 @@ private static void G_visUpdate(object? sender, bool e)
///
/// The sender.
/// The instance containing the event data.
- public static void FullRedraw(object? sender=null,EventArgs? e=null)
+ public void FullRedraw(object? sender=null,EventArgs? e=null)
{
// basic Checks
if (_game == null) return;
@@ -105,13 +112,13 @@ public static void FullRedraw(object? sender=null,EventArgs? e=null)
///
/// Shows the statistics.
///
- private static void ShowStatistics()
+ private void ShowStatistics()
{
if (_game == null) return;
myConsole.SetCursorPosition(0, 24);
myConsole.BackgroundColor = ConsoleColor.Black;
myConsole.ForegroundColor = ConsoleColor.Yellow;
- myConsole.Write($"\t{_game.Level + 1}\t\t{_game.Score}\t\t{_game.Lives}/{Game.MaxLives}\t\x08");
+ myConsole.Write($"\t{_game.Level + 1}\t\t{_game.Score}\t\t{_game.Lives}/{_game.MaxLives}\t\x08");
}
@@ -119,7 +126,7 @@ private static void ShowStatistics()
/// Sounds the specified gs.
///
/// The gs.
- public static void Sound(GameSound gs)
+ public void Sound(GameSound gs)
{
switch (gs)
{
@@ -141,10 +148,10 @@ public static void Sound(GameSound gs)
///
/// The action.
/// true if XXXX, false otherwise.
- public static bool CheckUserAction(out UserAction action)
+ public bool CheckUserAction()
{
bool result = false;
- action = UserAction.Nop;
+ var action = UserAction.Nop;
if (myConsole.KeyAvailable)
{
var ch = myConsole.ReadKey()?.KeyChar ?? '\x00';
@@ -156,7 +163,9 @@ public static bool CheckUserAction(out UserAction action)
result = true;
}
}
- return result;
+ if (_game != null)
+ _game.UserAction = action;
+ return result;
}
#endregion
diff --git a/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj b/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj
index 267210d2b..2c904a778 100644
--- a/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj
+++ b/CSharpBible/Games/Sokoban_Base/Sokoban_Base.csproj
@@ -2,7 +2,7 @@
Library
- net462;net472;net48;net481;net6.0;net7.0;net8.0
+ net462;net472;net48;net481;net6.0;net7.0;net8.0;net9.0
diff --git a/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj b/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj
index f41d92d6b..13e6c678f 100644
--- a/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj
+++ b/CSharpBible/Games/Sokoban_BaseTests/Sokoban_BaseTests.csproj
@@ -17,7 +17,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj b/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj
index e6eb1452f..da91c88bf 100644
--- a/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj
+++ b/CSharpBible/Games/Sudoku_BaseTests/Sudoku_BaseTests.csproj
@@ -10,7 +10,10 @@
-
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj b/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj
index 8fb3a98a3..7605c5519 100644
--- a/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj
+++ b/CSharpBible/Games/Tetris_Base/Tetris_Base.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0
+ net6.0;net7.0;net8.0;net9.0
Exe
diff --git a/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj b/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj
index 8f2cca4bd..4e0388afa 100644
--- a/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj
+++ b/CSharpBible/Games/Tetris_BaseTests/Tetris_BaseTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
enable
true
false
@@ -16,9 +16,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj
index 94d5dd6b0..2ffe1b7dd 100644
--- a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj
+++ b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Base.csproj
@@ -1,7 +1,7 @@
- net462;net472;net48;net481;net6.0;net7.0;net8.0
+ net462;net472;net48;net481;net6.0;net7.0;net8.0;net9.0
Library
diff --git a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj
index 5b43867cb..5371ab65b 100644
--- a/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj
+++ b/CSharpBible/Games/Werner_Flaschbier/Werner_Flaschbier_Console.csproj
@@ -1,7 +1,7 @@
- net462;net472;net48;net481;net6.0;net7.0;net8.0
+ net462;net472;net48;net481;net6.0;net7.0;net8.0;net9.0
Exe
diff --git a/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs b/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs
index 5b2f5011b..73d17a654 100644
--- a/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs
+++ b/CSharpBible/Games/Werner_Flaschbier_BaseTests/View/VisualTests.cs
@@ -1,7 +1,11 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
+using NSubstitute;
+using System.ComponentModel;
using System.Threading;
using TestConsole;
-using Werner_Flaschbier_Base.ViewModel;
+using Werner_Flaschbier_Base.Model;
+using Werner_Flaschbier_Base.ViewModels;
+using static BaseLib.Helper.TestHelper;
namespace Werner_Flaschbier_Base.View.Tests
{
@@ -72,6 +76,8 @@ public class VisualTests
\c0E\t2\t\t0\t\t10/10\t\t99\t\c00";
TstConsole? _testConsole;
+ private IWernerViewModel _model;
+ private Visual testClass;
///
/// Initializes this instance.
@@ -80,7 +86,8 @@ public class VisualTests
public void Init()
{
_testConsole ??= new TstConsole();
- Visual.myConsole = _testConsole;
+ _model = Substitute.For();
+ testClass = new Visual(_model,_testConsole);
}
///
@@ -92,7 +99,7 @@ public void WriteTileTest()
_testConsole!.Clear();
foreach (Tiles tile in typeof(Tiles).GetEnumValues())
{
- Visual.WriteTile(new System.Drawing.PointF((((int)tile) % 8) * 1.5f, (((int)tile) % 2) * 0.5f + (((int)tile) / 8)), tile);
+ testClass.WriteTile(new System.Drawing.PointF((((int)tile) % 8) * 1.5f, (((int)tile) % 2) * 0.5f + (((int)tile) / 8)), tile);
Thread.Sleep(0);
}
Assert.AreEqual(cExpWriteTile, _testConsole.Content);
@@ -106,14 +113,23 @@ public void WriteTileTest()
public void FullRedrawTest()
{
_testConsole!.Clear();
- Game g;
- Visual.SetGame(g=new Game());
+ WernerGame g = new();
+ IWernerViewModel.ITileProxy tp;
+ _model.Tiles.Returns(tp = Substitute.For());
+ _model.size.Returns(g.size);
+ _model.Level.Returns((p)=>g.Level);
+ _model.Score.Returns(g.Score);
+ _model.Lives.Returns(g.Lives);
+ _model.MaxLives.Returns(g.MaxLives);
+ _model.TimeLeft.Returns(g.TimeLeft);
+ tp[Arg.Any()].Returns((p) => g.GetTile((System.Drawing.Point)p[0]));
+ _model.PropertyChanged += Raise.Event(_model,new PropertyChangedEventArgs(nameof(_model.Level)));
Thread.Sleep(500);
- Assert.AreEqual(cExpFullRedraw1, _testConsole.Content);
+ AssertAreEqual(cExpFullRedraw1, _testConsole.Content);
g.Setup(1);
- Visual.FullRedraw();
+ testClass.FullRedraw();
Thread.Sleep(500);
- Assert.AreEqual(cExpFullRedraw2, _testConsole.Content);
+ AssertAreEqual(cExpFullRedraw2, _testConsole.Content);
}
}
}
\ No newline at end of file
diff --git a/CSharpBible/Games/Werner_Flaschbier_BaseTests/Werner_Flaschbier_BaseTests.csproj b/CSharpBible/Games/Werner_Flaschbier_BaseTests/Werner_Flaschbier_BaseTests.csproj
deleted file mode 100644
index be1f2c1e7..000000000
--- a/CSharpBible/Games/Werner_Flaschbier_BaseTests/Werner_Flaschbier_BaseTests.csproj
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- net6.0-windows
- disable
- enable
- ..\..\..\obj.net\$(MSBuildProjectName)\
- ..\..\..\obj.net\$(MSBuildProjectName)\
- ..\..\..\bin\$(MSBuildProjectName)
-
- false
-
-
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
diff --git a/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs b/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs
index e5d01be7b..d2e45af7d 100644
--- a/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs
+++ b/CSharpBible/Graphics/CanvasWPF2_CTItemTemplateSelector/ViewModels/MainWindowViewmodel.cs
@@ -9,6 +9,7 @@
using BaseLib.Helper.MVVM;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
+using BaseLib.Interfaces;
namespace CanvasWPF2_CTItemTemplateSelector.ViewModel
{
diff --git a/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx b/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx
index ce04866e5..c08d1af51 100644
--- a/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx
+++ b/CSharpBible/Graphics/MVVM_Converter_DrawGrid/Properties/Resources.resx
@@ -125,7 +125,7 @@
..\Views\PlotFrame.xaml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
- ..\ViewModel\PlotFrameViewModel.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+ ..\ViewModels\PlotFrameViewModel.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
MVVM Graphics: Draw-grid
diff --git a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj
index 576dc396d..3bf33adce 100644
--- a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj
+++ b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandlingTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj
index addfe93f0..0d639b7bf 100644
--- a/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj
+++ b/CSharpBible/Graphics/MVVM_ImageHandlingTests/MVVM_ImageHandling_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj b/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj
index 541833fd3..71a6e220d 100644
--- a/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj
+++ b/CSharpBible/Graphics/PermutationTests/PermutationTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj b/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj
index 478ee54c3..3d181cde3 100644
--- a/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj
+++ b/CSharpBible/Libraries/BaseLibTests/BaseLibTests.csproj
@@ -8,9 +8,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj b/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj
index 824128ab2..5786b198d 100644
--- a/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj
+++ b/CSharpBible/Libraries/BaseLibTests/BaseLib_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0;net7.0;net8.0;net481-windows;net48-windows;net472-windows;net462-windows
+ net6.0;net7.0;net8.0;net9.0;net481-windows;net48-windows;net472-windows;net462-windows
false
@@ -12,9 +12,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs b/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs
index f76badf05..6cd7e8e85 100644
--- a/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs
+++ b/CSharpBible/Libraries/CommonDialogs/ColorDialog.cs
@@ -59,6 +59,7 @@ public ColorDialog()
/// Ruft die von den Benutzern ausgewählte Farbe ab oder legt diese fest.
///
/// The color.
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public Color Color { get => _cd.Color; set => _cd.Color = value; }
diff --git a/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs b/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs
index 56a5963c4..c46c1a3dd 100644
--- a/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs
+++ b/CSharpBible/Libraries/CommonDialogs/FolderBrowserDialog.cs
@@ -18,98 +18,103 @@
namespace CommonDialogs;
- // System.Windows.Forms.FolderBrowserDialog
+// System.Windows.Forms.FolderBrowserDialog
- ///
- /// Fordert den Benutzer auf, einen Ordner auszuwählen. Diese Klasse kann nicht vererbt werden.
- ///
- [DefaultEvent("HelpRequest")]
+///
+/// Fordert den Benutzer auf, einen Ordner auszuwählen. Diese Klasse kann nicht vererbt werden.
+///
+[DefaultEvent("HelpRequest")]
[DefaultProperty("SelectedPath")]
public class FolderBrowserDialog : Component, IFileDialog
{
- ///
- /// The FBD
- ///
- private readonly System.Windows.Forms.FolderBrowserDialog _fbd =new System.Windows.Forms.FolderBrowserDialog();
-
- ///
- /// Gets or sets a value indicating whether [show new folder button].
- ///
- /// true if [show new folder button]; otherwise, false.
- public bool ShowNewFolderButton { get => _fbd.ShowNewFolderButton; set => _fbd.ShowNewFolderButton = value; }
-
- ///
- /// Ruft den von den Benutzern ausgewählten Pfad ab oder legt diesen fest.
- ///
- /// The selected path.
- public string SelectedPath { get => _fbd.SelectedPath; set => _fbd.SelectedPath = value; }
-
- public string FileName { get => _fbd.SelectedPath; set => _fbd.SelectedPath =value; }
-
- ///
- /// Ruft den Stammordner ab, von dem aus eine Suche gestartet wird, oder legt diesen fest.
- ///
- /// The root folder.
- /// Der zugewiesene Wert ist keiner der -Werte.
- public Environment.SpecialFolder RootFolder { get => _fbd.RootFolder; set => _fbd.RootFolder = value; }
-
- ///
- /// Ruft den beschreibenden Text ab, der im Dialogfeld über dem Strukturansichts-Steuerelement angezeigt wird, oder legt diesen fest.
- ///
- /// The description.
- public string Description { get => _fbd.Description; set => _fbd.Description = value; }
-
- ///
- /// Tritt ein, wenn der Benutzer im Dialogfeld auf die Schaltfläche Hilfe klickt.
- ///
- [Browsable(false)]
- [EditorBrowsable(EditorBrowsableState.Never)]
- public event EventHandler HelpRequest { add => _fbd.HelpRequest += value; remove => _fbd.HelpRequest -= value; }
-
-
-
- ///
- /// Initialisiert eine neue Instanz der -Klasse.
- ///
- public FolderBrowserDialog()
- {
- Reset();
- }
-
- ///
- /// Setzt Eigenschaften auf die Standardwerte zurück.
- ///
- public void Reset()
- {
- _fbd.Reset();
- }
- ///
- /// Ruft ein Objekt ab, das Daten bezüglich des Steuerelements enthält, oder legt dieses Objekt fest.
- ///
- /// The tag.
- [Localizable(false)]
- [Bindable(true)]
- [DefaultValue(null)]
- [TypeConverter(typeof(StringConverter))]
- public object? Tag { get => _fbd.Tag; set => _fbd.Tag = value; }
-
- ///
- /// Führt ein Standarddialogfeld mit einem Standardbesitzer aus.
- ///
- /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls .
- public bool? ShowDialog()
- {
- return _fbd.ShowDialog()==DialogResult.OK;
- }
-
- ///
- /// Führt ein Standarddialogfeld mit dem angegebenen Besitzer aus.
- ///
- /// Ein beliebiges Objekt, das implementiert, das das Fenster der obersten Ebene und damit den Besitzer des modalen Dialogfelds darstellt.
- /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls .
- public bool? ShowDialog(object owner)
- {
- return _fbd.ShowDialog((IWin32Window)owner) == DialogResult.OK;
- }
+ ///
+ /// The FBD
+ ///
+ private readonly System.Windows.Forms.FolderBrowserDialog _fbd = new System.Windows.Forms.FolderBrowserDialog();
+
+ ///
+ /// Gets or sets a value indicating whether [show new folder button].
+ ///
+ /// true if [show new folder button]; otherwise, false.
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
+ public bool ShowNewFolderButton { get => _fbd.ShowNewFolderButton; set => _fbd.ShowNewFolderButton = value; }
+
+ ///
+ /// Ruft den von den Benutzern ausgewählten Pfad ab oder legt diesen fest.
+ ///
+ /// The selected path.
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
+ public string SelectedPath { get => _fbd.SelectedPath; set => _fbd.SelectedPath = value; }
+
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
+ public string FileName { get => _fbd.SelectedPath; set => _fbd.SelectedPath = value; }
+
+ ///
+ /// Ruft den Stammordner ab, von dem aus eine Suche gestartet wird, oder legt diesen fest.
+ ///
+ /// The root folder.
+ /// Der zugewiesene Wert ist keiner der -Werte.
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
+ public Environment.SpecialFolder RootFolder { get => _fbd.RootFolder; set => _fbd.RootFolder = value; }
+
+ ///
+ /// Ruft den beschreibenden Text ab, der im Dialogfeld über dem Strukturansichts-Steuerelement angezeigt wird, oder legt diesen fest.
+ ///
+ /// The description.
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
+ public string Description { get => _fbd.Description; set => _fbd.Description = value; }
+
+ ///
+ /// Tritt ein, wenn der Benutzer im Dialogfeld auf die Schaltfläche Hilfe klickt.
+ ///
+ [Browsable(false)]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public event EventHandler HelpRequest { add => _fbd.HelpRequest += value; remove => _fbd.HelpRequest -= value; }
+
+
+
+ ///
+ /// Initialisiert eine neue Instanz der -Klasse.
+ ///
+ public FolderBrowserDialog()
+ {
+ Reset();
+ }
+
+ ///
+ /// Setzt Eigenschaften auf die Standardwerte zurück.
+ ///
+ public void Reset()
+ {
+ _fbd.Reset();
+ }
+ ///
+ /// Ruft ein Objekt ab, das Daten bezüglich des Steuerelements enthält, oder legt dieses Objekt fest.
+ ///
+ /// The tag.
+ [Localizable(false)]
+ [Bindable(true)]
+ [DefaultValue(null)]
+ [TypeConverter(typeof(StringConverter))]
+ public object? Tag { get => _fbd.Tag; set => _fbd.Tag = value; }
+
+ ///
+ /// Führt ein Standarddialogfeld mit einem Standardbesitzer aus.
+ ///
+ /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls .
+ public bool? ShowDialog()
+ {
+ return _fbd.ShowDialog() == DialogResult.OK;
+ }
+
+ ///
+ /// Führt ein Standarddialogfeld mit dem angegebenen Besitzer aus.
+ ///
+ /// Ein beliebiges Objekt, das implementiert, das das Fenster der obersten Ebene und damit den Besitzer des modalen Dialogfelds darstellt.
+ /// , wenn der Benutzer im Dialogfeld auf OK klickt, andernfalls .
+ public bool? ShowDialog(object owner)
+ {
+ return _fbd.ShowDialog((IWin32Window)owner) == DialogResult.OK;
+ }
}
diff --git a/CSharpBible/Libraries/CommonDialogs/FontDialog.cs b/CSharpBible/Libraries/CommonDialogs/FontDialog.cs
index 30fc3d71b..19f794087 100644
--- a/CSharpBible/Libraries/CommonDialogs/FontDialog.cs
+++ b/CSharpBible/Libraries/CommonDialogs/FontDialog.cs
@@ -13,6 +13,7 @@
// ***********************************************************************
using CommonDialogs.Interfaces;
using System.Windows.Forms;
+using System.ComponentModel;
namespace CommonDialogs;
@@ -23,6 +24,7 @@ namespace CommonDialogs;
///
public class FontDialog : System.Windows.Forms.FontDialog, IFontDialog
{
+ [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public new System.Drawing.Font Font { get => base.Font;set => base.Font = value; }
///
diff --git a/CSharpBible/Libraries/MVVM_BaseLib/Helper/MVVM/CRandom.cs b/CSharpBible/Libraries/MVVM_BaseLib/Helper/MVVM/CRandom.cs
deleted file mode 100644
index b3e783745..000000000
--- a/CSharpBible/Libraries/MVVM_BaseLib/Helper/MVVM/CRandom.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using BaseLib.Interfaces;
-using System;
-
-namespace BaseLib.Helper.MVVM;
-
-public class CRandom :IRandom
-{
- private Random _random;
-
- public CRandom()
- {
- _random = new Random();
- }
-
- public int Next(int v1, int v2) => v2 !=-1 || v1 _random.NextDouble();
-
- public int NextInt() => _random.Next();
-
- public void Seed(int value) => _random = new Random(value);
-}
diff --git a/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs b/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs
index 46cecc7c7..e8a7e7220 100644
--- a/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs
+++ b/CSharpBible/Libraries/MVVM_BaseLibTests/Helper/MVVM/CRandomTests.cs
@@ -1,5 +1,6 @@
using BaseLib.Interfaces;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+using MVVM_BaseLib.Helper;
using static BaseLib.Helper.TestHelper;
namespace BaseLib.Helper.MVVM.Tests;
diff --git a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj
index a1dc50214..f5006a325 100644
--- a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj
+++ b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests.csproj
@@ -14,7 +14,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj
index 486c13e67..6c9c9fedb 100644
--- a/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj
+++ b/CSharpBible/Libraries/MVVM_BaseLibTests/MVVM_BaseLibTests_net.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj b/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj
index baa83a243..c843afea8 100644
--- a/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj
+++ b/CSharpBible/Libraries/MathLibraryTests/MathLibraryTests.csproj
@@ -10,9 +10,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj b/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj
index f322e8220..df01d676a 100644
--- a/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj
+++ b/CSharpBible/Libraries/MathLibraryTests/MathLibrary_netTests.csproj
@@ -10,9 +10,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj b/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj
index 5da94c164..cf6911306 100644
--- a/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/DemoLibraryTests/DemoLibraryTests.csproj
@@ -2,7 +2,7 @@
Library
- net6.0;net7.0;net8.0;net481;net48;net472;net462
+ net6.0;net7.0;net8.0;net9.0;net481;net48;net472;net462
false
@@ -15,9 +15,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj b/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj
index 8fd1e7503..b38b5d817 100644
--- a/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/ItemsControlTut3_netTests/ItemsControlTut3_netTests.csproj
@@ -2,7 +2,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
false
@@ -16,9 +16,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj b/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj
index 76c76a70b..611a8b639 100644
--- a/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/ItemsControlTut4_netTests/ItemsControlTut4_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
false
@@ -15,9 +15,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj
index 1687afc86..bb4a6a656 100644
--- a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBindingTests.csproj
@@ -27,9 +27,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj
index 1db71ee52..790ee6297 100644
--- a/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/ListBindingTests/ListBinding_netTests.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
true
@@ -19,9 +19,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj
index c43e1fd81..73d86d771 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplateTests.csproj
@@ -13,9 +13,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj
index 0d3925bd2..b47259510 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_00_IoCTemplateTests/MVVM_00_IoCTemplate_netTests.csproj
@@ -10,9 +10,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj
index 28602c3c6..1169aaecb 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_TemplateTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj
index 0bc300875..3b23cf84f 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_00_TemplateTests/MVVM_00_Template_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj
index 060a96621..a2a5b1cdf 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplateTests.csproj
@@ -10,9 +10,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj
index 7156dd493..0023c3178 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_00a_CTTemplateTests/MVVM_00a_CTTemplate_netTests.csproj
@@ -10,9 +10,8 @@
-
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj
index 238459db8..d9975b758 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChangeTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj
index 93b41823f..b39d73a5b 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_03_NotifyChangeTests/MVVM_03_NotifyChange_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj
index 6dcc3a99e..5508fe178 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChangeTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj
index f0016e9fb..3c6f9acb2 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_03a_CTNotifyChangeTests/MVVM_03a_CTNotifyChange_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj
index e5880c753..d6947d6e5 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommandTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj
index 1186a0e24..5c63be687 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_04_DelegateCommandTests/MVVM_04_DelegateCommand_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj
index a2f3b69e8..7daeeb6e5 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommandTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj
index 29c59aa20..eac28163e 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_04a_CTRelayCommandTests/MVVM_04a_CTRelayCommand_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj
index dbd23b667..2d0abd177 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculatorTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj
index 3281f3f6b..76cea6f93 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_05_CommandParCalculatorTests/MVVM_05_CommandParCalculator_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj
index 07940e567..a8e545c8e 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalcTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj
index 300f2adfd..b12f5abe6 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_05a_CTCommandParCalcTests/MVVM_05a_CTCommandParCalc_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj
index d0cfa875c..51bbef340 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_06_ConvertersTests/MVVM_06_ConvertersTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj
index 0a4fd7694..d9b5e207d 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3Tests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj
index 159d2f7ab..c7137c728 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_3Tests/MVVM_06_Converters_3_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj
index 294570c3c..0844a96b2 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4Tests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj
index cff96a832..9fdc7fe1c 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_06_Converters_4Tests/MVVM_06_Converters_4_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj
index 66029821d..6a96abbe0 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxesTest.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj
index fa4c6d6a8..24c1178b6 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_09_DialogBoxesTest/MVVM_09_DialogBoxes_netTests.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj
index caab0a5e9..57983959d 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxesTests.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj
index 118d6c4b7..c6d4028e5 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_09a_CTDialogBoxesTests/MVVM_09a_CTDialogBoxes_netTests.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj
index f4e30f08c..626309178 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1Tests.csproj
@@ -14,7 +14,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj
index a5aadeca8..121b71ffe 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_16_UserControl1Tests/MVVM_16_UserControl1_netTests.csproj
@@ -14,7 +14,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj
index 771f12722..f447b208f 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_18_MultiConvertersTests/MVVM_18_MultiConvertersTests.csproj
@@ -20,7 +20,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj
index d65ce70b3..ac3dd86b9 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterListsTests.csproj
@@ -29,7 +29,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj
index f2c7187fc..7b1378883 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_19_FilterListsTests/MVVM_19_FilterLists_netTests.csproj
@@ -21,7 +21,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj
index c23bbda1a..887f5f9d8 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_SysdialogsTests.csproj
@@ -17,7 +17,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj
index dfef2e95f..322415d31 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_20_SysdialogsTests/MVVM_20_Sysdialogs_netTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj
index 3bd4d5017..40c1a56c2 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogsTests.csproj
@@ -17,7 +17,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj
index 36591996a..9e14f1d99 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_20a_CTSysdialogsTests/MVVM_20a_CTSysdialogs_netTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj
index 2b4ef495b..c21e911c1 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCapTests.csproj
@@ -24,10 +24,11 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj
index f4b8431bf..6c0533b33 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_22_CTWpfCapTests/MVVM_22_CTWpfCap_netTests.csproj
@@ -24,7 +24,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj
index bb5e22f4e..2162d20d9 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCapTests.csproj
@@ -24,7 +24,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj
index 07ee664f4..aa453381c 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_22_WpfCapTests/MVVM_22_WpfCap_netTests.csproj
@@ -24,7 +24,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj
index 440a25f8e..e9c2ad0ff 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControlTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj
index b17964227..e8b807b1f 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24_UserControlTests/MVVM_24_UserControl_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj
index c53bc2e93..83ca0e577 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControlTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj
index 8167016ab..db48e5378 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24a_CTUserControlTests/MVVM_24a_CTUserControl_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj
index d5377fb32..c7058ac6c 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControlTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj
index c5b32effb..6acd458ee 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24b_UserControlTests/MVVM_24b_UserControl_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj
index 61c578b1c..f0de21763 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControlTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj
index 951fc595c..ffaad36bd 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_24c_CTUserControlTests/MVVM_24c_CTUserControl_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj
index 4c55705d1..e9e4ffc52 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEditTests.csproj
@@ -15,7 +15,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj
index d746fe81e..4d91f06eb 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_25_RichTextEditTests/MVVM_25_RichTextEdit_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj
index be911aaa7..01d759874 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGridTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj
index 6360d0d94..31b44decf 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_27_DataGridTests/MVVM_27_DataGrid_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj
index 8a03c26b4..8679c8738 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExtTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj
index 483e1f369..0a2ba8eee 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_CTDataGridExtTests/MVVM_28_1_CTDataGridExt_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj
index 795c935c3..f0e2fae31 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExtTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj
index 023d7fab6..70bf5f970 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_28_1_DataGridExtTests/MVVM_28_1_DataGridExt_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj
index b9b05d84e..95418b501 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGridTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj
index c06c901c7..0635800f6 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_28_DataGridTests/MVVM_28_DataGrid_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj
index 2138b073c..2931743be 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1Tests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj
index 28fc43348..bf848dc47 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation1Tests/MVVM_31_Validation1_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj
index d2db28b8f..12549b268 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2Tests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj
index 182eb8265..3ec55af0e 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31_Validation2Tests/MVVM_31_Validation2_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj
index 8c190228e..70a26c2b0 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1Tests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj
index 386032116..176eba382 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation1Tests/MVVM_31a_CTValidation1_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj
index 2f4be2653..04d769310 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2Tests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj
index 5c310c4e9..3f91eea9f 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation2Tests/MVVM_31a_CTValidation2_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj
index 9758148dc..ca94a8e89 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3Tests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj
index 8394e3ede..9605cc145 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_31a_CTValidation3Tests/MVVM_31a_CTValidation3_netTests.csproj
@@ -10,7 +10,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj
index bc6a30633..d080c8495 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_CommandsTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj
index 22d331b2c..3ef1ba161 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_33_Events_to_CommandsTests/MVVM_33_Events_to_Commands_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj
index 442aa9310..4fb683cbb 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_CommandsTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj
index 1dcc386c6..8f9d859a9 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_33a_CTEvents_To_CommandsTests/MVVM_33a_CTEvents_To_Commands_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj
index 907d40422..7b9b19a53 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgsTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj
index 8e73120b6..72339ed75 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_34_BindingEventArgsTests/MVVM_34_BindingEventArgs_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj
index 4eb698afa..c0ff9fd50 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgsTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj
index be69ff7f9..aeec53220 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_34a_CTBindingEventArgsTests/MVVM_34a_CTBindingEventArgs_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj
index 73eb9a781..05eeb59dd 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkitTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj
index 41958790f..f6635afae 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_35_CommunityToolkitTests/MVVM_35_CommunityToolkit_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj
index 17caef72d..85908afc7 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWorkTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj
index e85881cb6..7dce99adb 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_36_ComToolKtSavesWorkTests/MVVM_36_ComToolKtSavesWork_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj
index 22e9edf1e..07a7e5aa2 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeViewTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj
index c6edf019d..af93a5c30 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_37_TreeViewTests/MVVM_37_TreeView_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj
index 5b62153bf..10b517644 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjectionTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj
index b740144f6..cecd2d1fe 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_38_CTDependencyInjectionTests/MVVM_38_CTDependencyInjection_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj
index 15bfd9ead..26482826a 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTestTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj
index 9b0bcd146..8fc3f36a2 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_39_MultiModelTestTests/MVVM_39_MultiModelTest_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj
index 5e4e753cf..1e0b33074 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_WizzardTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj
index 78d800779..8b0447686 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_40_WizzardTests/MVVM_40_Wizzard_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj
index c533c7a2d..ced78e0c1 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_SudokuTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj
index f4fe46c1e..b7fc46e24 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_41_SudokuTests/MVVM_41_Sudoku_netTests.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj
index 6826623d6..764a54788 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamplesTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj
index 60d993da0..253b9c5d3 100644
--- a/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/MVVM_AllExamplesTests/MVVM_AllExamples_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj
index 1756dcc13..431540695 100644
--- a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfAppTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj
index a88e93bb0..e9c4d40a8 100644
--- a/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj
+++ b/CSharpBible/MVVM_Tutorial/WpfAppTests/WpfApp_netTests.csproj
@@ -11,7 +11,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj
index 2dcb4d08c..e68fd3d9c 100644
--- a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj
+++ b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_TemplateTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj
index 647493ee5..9f43393e0 100644
--- a/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj
+++ b/CSharpBible/Patterns_Tutorial/Pattern_00_TemplateTests/Pattern_00_Template_netTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj
index c8e132b7d..6af2d0696 100644
--- a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj
+++ b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_SingletonTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj
index 7049469c4..eb113c87a 100644
--- a/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj
+++ b/CSharpBible/Patterns_Tutorial/Pattern_01_SingletonTests/Pattern_01_Singleton_netTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj
index 007cda08a..45916e680 100644
--- a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj
+++ b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_ObserverTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj
index b5d99bff7..76619ecfe 100644
--- a/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj
+++ b/CSharpBible/Patterns_Tutorial/Pattern_02_ObserverTests/Pattern_02_Observer_netTests.csproj
@@ -16,7 +16,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Solution.props b/CSharpBible/Solution.props
index 1eaa72b6c..3e0fe7f71 100644
--- a/CSharpBible/Solution.props
+++ b/CSharpBible/Solution.props
@@ -3,7 +3,7 @@
..
$(UpDir)\..\bin\$(MSBuildProjectName)\
$(UpDir)\..\obj\$(MSBuildProjectName)\
- 9.0
+ 13.0
enable
NULLABLE
disable
diff --git a/CSharpBible/Solution_net.props b/CSharpBible/Solution_net.props
index 73b67e898..48ed5a613 100644
--- a/CSharpBible/Solution_net.props
+++ b/CSharpBible/Solution_net.props
@@ -3,7 +3,7 @@
..
$(UpDir)\..\bin\$(MSBuildProjectName)\
$(UpDir)\..\obj.net\$(MSBuildProjectName)\
- 12.0
+ 13.0
enable
disable
JC-Soft
diff --git a/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj b/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj
index b57e1a9ca..0380d3a10 100644
--- a/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj
+++ b/CSharpBible/SomeThing/SomeThing2Tests/SomeThing2Tests.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj b/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj
index 23dc5bfdc..2cdc8b33f 100644
--- a/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj
+++ b/CSharpBible/SomeThing/SomeThing2aTests/SomeThing2aTests.csproj
@@ -13,7 +13,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/TestConsole/TestConsole_net.csproj b/CSharpBible/TestConsole/TestConsole_net.csproj
index b2fedd800..60e8d8057 100644
--- a/CSharpBible/TestConsole/TestConsole_net.csproj
+++ b/CSharpBible/TestConsole/TestConsole_net.csproj
@@ -1,7 +1,7 @@
- net6.0-windows;net7.0-windows;net8.0-windows
+ net6.0-windows;net7.0-windows;net8.0-windows;net9.0-windows
true
diff --git a/CSharpBible/TestConsoleTests/TestConsoleTests.csproj b/CSharpBible/TestConsoleTests/TestConsoleTests.csproj
index 3cc6ef3f7..66ea5762d 100644
--- a/CSharpBible/TestConsoleTests/TestConsoleTests.csproj
+++ b/CSharpBible/TestConsoleTests/TestConsoleTests.csproj
@@ -24,7 +24,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/Tests/Test.csproj b/CSharpBible/Tests/Test.csproj
index fc0b3598d..89d2ab359 100644
--- a/CSharpBible/Tests/Test.csproj
+++ b/CSharpBible/Tests/Test.csproj
@@ -14,7 +14,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj
index a093a3aa7..d933b8340 100644
--- a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTimingTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj
index 87a205676..0c0c6d172 100644
--- a/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_AnimationTimingTests/WPF_AnimationTiming_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj
index 8916d626e..1d61a0bd2 100644
--- a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_LayoutTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj
index 1f2d82792..da32735d5 100644
--- a/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_Complex_LayoutTests/WPF_Complex_Layout_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj
index 3cc575001..0e6bbf3d1 100644
--- a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayoutTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj
index 705474113..6aaa8eaaf 100644
--- a/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_ControlsAndLayoutTests/WPF_ControlsAndLayout_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj
index 25dadf02e..77d55b017 100644
--- a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimationTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj
index 114f3bb97..9979bd42a 100644
--- a/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_CustomAnimationTests/WPF_CustomAnimation_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj
index 0caee7228..4a9b6375c 100644
--- a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_WorldTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj
index 21d406d41..febc2da21 100644
--- a/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_Hello_WorldTests/WPF_Hello_World_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj
index cfce82c4e..f1b5d5383 100644
--- a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetailTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj
index db64df942..27eb753da 100644
--- a/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_MasterDetailTests/WPF_MasterDetail_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj
index 5abc829bb..7b99976d0 100644
--- a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindowTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj
index 14279b170..bbf7d6700 100644
--- a/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_MoveWindowTests/WPF_MoveWindow_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj
index cab6c5a83..311703444 100644
--- a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_TemplateTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj
index 606ae2b2c..170dd3074 100644
--- a/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_Sample_TemplateTests/WPF_Sample_Template_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs
index c5a66d1dd..3145d78b0 100644
--- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs
+++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/ViewModels/StickyNotesViewModel.cs
@@ -16,6 +16,7 @@
using WPF_StickyNotesDemo.Models.Interfaces;
using System;
using System.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
namespace WPF_StickyNotesDemo.ViewModels
{
@@ -53,6 +54,10 @@ private void OnMPropertyChanged(object sender, PropertyChangedEventArgs e)
OnPropertyChanged(e.PropertyName);
}
+ [RelayCommand]
+ private void CbClick(object o)
+ {
+ }
#endregion
}
}
diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml
index 9629a7438..67c5d9084 100644
--- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml
+++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemo/Views/StickyNotesView.xaml
@@ -21,7 +21,7 @@
+ Name="cb" Command="{Binding CbClickCommand}" />
diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj
index d197d4d24..1db388903 100644
--- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemoTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj
index fa7f982fa..55428dfc8 100644
--- a/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj
+++ b/CSharpBible/WPFSamples_2/WPF_StickyNotesDemoTests/WPF_StickyNotesDemo_netTests.csproj
@@ -12,7 +12,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive