diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.sln b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.sln
new file mode 100644
index 0000000..cf0c5d2
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.sln
@@ -0,0 +1,33 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31521.260
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AttachedNumericValidationBehavior", "AttachedNumericValidationBehavior\AttachedNumericValidationBehavior\AttachedNumericValidationBehavior.csproj", "{55E0B2C9-AC7E-4712-BE1D-2788098E63F2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AttachedNumericValidationBehavior.WinUI", "AttachedNumericValidationBehavior\AttachedNumericValidationBehavior.WinUI\AttachedNumericValidationBehavior.WinUI.csproj", "{F045A6EB-5EDB-407D-9452-123C230672EB}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {55E0B2C9-AC7E-4712-BE1D-2788098E63F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {55E0B2C9-AC7E-4712-BE1D-2788098E63F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {55E0B2C9-AC7E-4712-BE1D-2788098E63F2}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {55E0B2C9-AC7E-4712-BE1D-2788098E63F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {55E0B2C9-AC7E-4712-BE1D-2788098E63F2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {55E0B2C9-AC7E-4712-BE1D-2788098E63F2}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {F045A6EB-5EDB-407D-9452-123C230672EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F045A6EB-5EDB-407D-9452-123C230672EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F045A6EB-5EDB-407D-9452-123C230672EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F045A6EB-5EDB-407D-9452-123C230672EB}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {FD7E4BAC-CCE1-4DE5-B0FF-496DC3D4CE12}
+ EndGlobalSection
+EndGlobal
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/AttachedNumericValidationBehavior.WinUI.csproj b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/AttachedNumericValidationBehavior.WinUI.csproj
new file mode 100644
index 0000000..74ab397
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/AttachedNumericValidationBehavior.WinUI.csproj
@@ -0,0 +1,61 @@
+
+
+
+ net6.0-windows10.0.19041
+ win-x64
+ WinExe
+ 10.0.17763.0
+ true
+ true
+ AttachedNumericValidationBehavior
+
+
+ true
+ MSIX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/App.xaml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/App.xaml
new file mode 100644
index 0000000..1bfa0b8
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/App.xaml
@@ -0,0 +1,8 @@
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/App.xaml.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/App.xaml.cs
new file mode 100644
index 0000000..a7756c7
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/App.xaml.cs
@@ -0,0 +1,33 @@
+using Microsoft.Maui;
+using Microsoft.UI.Xaml;
+using Windows.ApplicationModel;
+
+// To learn more about WinUI, the WinUI project structure,
+// and more about our project templates, see: http://aka.ms/winui-project-info.
+
+namespace AttachedNumericValidationBehavior.WinUI
+{
+ ///
+ /// Provides application-specific behavior to supplement the default Application class.
+ ///
+ public partial class App : MauiWinUIApplication
+ {
+ ///
+ /// Initializes the singleton application object. This is the first line of authored code
+ /// executed, and as such is the logical equivalent of main() or WinMain().
+ ///
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override IStartup OnCreateStartup() => new Startup();
+
+ protected override void OnLaunched(LaunchActivatedEventArgs args)
+ {
+ base.OnLaunched(args);
+
+ Microsoft.Maui.Essentials.Platform.OnLaunched(args);
+ }
+ }
+}
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/Package.appxmanifest b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/Package.appxmanifest
new file mode 100644
index 0000000..1ba994d
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/Package.appxmanifest
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+ AttachedNumericValidationBehavior
+ Microsoft
+ Assets\appiconStoreLogo.png
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/app.manifest b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/app.manifest
new file mode 100644
index 0000000..3a48678
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Platforms/Windows/app.manifest
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+ true/PM
+ PerMonitorV2, PerMonitor
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Properties/launchSettings.json b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Properties/launchSettings.json
new file mode 100644
index 0000000..dc271cf
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.WinUI/Properties/launchSettings.json
@@ -0,0 +1,7 @@
+{
+ "profiles": {
+ "AttachedNumericValidationBehavior.WinUI": {
+ "commandName": "MsixPackage"
+ }
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/App.xaml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/App.xaml
new file mode 100644
index 0000000..c3164a6
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/App.xaml
@@ -0,0 +1,7 @@
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/App.xaml.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/App.xaml.cs
new file mode 100644
index 0000000..54990f2
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/App.xaml.cs
@@ -0,0 +1,14 @@
+using Application = Microsoft.Maui.Controls.Application;
+
+namespace AttachedNumericValidationBehavior
+{
+ public partial class App : Application
+ {
+ public App()
+ {
+ InitializeComponent();
+
+ MainPage = new HomePage();
+ }
+ }
+}
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.csproj b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.csproj
new file mode 100644
index 0000000..b6811e8
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior.csproj
@@ -0,0 +1,47 @@
+
+
+
+
+ net6.0-ios;net6.0-android;net6.0-maccatalyst
+ Exe
+ true
+ true
+ AttachedNumericValidationBehavior
+
+
+ AttachedNumericValidationBehavior
+
+
+ com.companyname.AttachedNumericValidationBehavior
+
+
+ 1.0
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ iossimulator-x64
+ maccatalyst-x64
+ False
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Behaviors/NumericValidationBehavior.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Behaviors/NumericValidationBehavior.cs
new file mode 100644
index 0000000..02cbe15
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Behaviors/NumericValidationBehavior.cs
@@ -0,0 +1,48 @@
+using Microsoft.Maui.Controls;
+using Microsoft.Maui.Graphics;
+
+namespace AttachedNumericValidationBehavior
+{
+ public static class NumericValidationBehavior
+ {
+ public static readonly BindableProperty AttachBehaviorProperty =
+ BindableProperty.CreateAttached("AttachBehavior", typeof(bool), typeof(NumericValidationBehavior), false, propertyChanged: OnAttachBehaviorChanged);
+
+ public static bool GetAttachBehavior(BindableObject view)
+ {
+ return (bool)view.GetValue(AttachBehaviorProperty);
+ }
+
+ public static void SetAttachBehavior(BindableObject view, bool value)
+ {
+ view.SetValue(AttachBehaviorProperty, value);
+ }
+
+ static void OnAttachBehaviorChanged(BindableObject view, object oldValue, object newValue)
+ {
+ var entry = view as Entry;
+ if (entry == null)
+ {
+ return;
+ }
+
+ bool attachBehavior = (bool)newValue;
+ if (attachBehavior)
+ {
+ entry.TextChanged += OnEntryTextChanged;
+ }
+ else
+ {
+ entry.TextChanged -= OnEntryTextChanged;
+ }
+ }
+
+ static void OnEntryTextChanged(object sender, TextChangedEventArgs args)
+ {
+ double result;
+ bool isValid = double.TryParse(args.NewTextValue, out result);
+ ((Entry)sender).TextColor = isValid ? Colors.Transparent : Colors.Red;
+ }
+ }
+}
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePage.xaml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePage.xaml
new file mode 100644
index 0000000..34d843d
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePage.xaml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePage.xaml.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePage.xaml.cs
new file mode 100644
index 0000000..7488518
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePage.xaml.cs
@@ -0,0 +1,13 @@
+using Microsoft.Maui.Controls;
+
+namespace AttachedNumericValidationBehavior
+{
+ public partial class HomePage : TabbedPage
+ {
+ public HomePage()
+ {
+ InitializeComponent();
+ }
+ }
+}
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePageCS.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePageCS.cs
new file mode 100644
index 0000000..91c4e0b
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/HomePageCS.cs
@@ -0,0 +1,12 @@
+using Microsoft.Maui.Controls;
+
+namespace AttachedNumericValidationBehavior
+{
+ public class HomePageCS : TabbedPage
+ {
+ public HomePageCS ()
+ {
+ Children.Add (new NumericValidationPageCS ());
+ }
+ }
+}
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPage.xaml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPage.xaml
new file mode 100644
index 0000000..2f4c1cd
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPage.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPage.xaml.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPage.xaml.cs
new file mode 100644
index 0000000..fce75cc
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPage.xaml.cs
@@ -0,0 +1,13 @@
+using Microsoft.Maui.Controls;
+
+namespace AttachedNumericValidationBehavior
+{
+ public partial class NumericValidationPage : ContentPage
+ {
+ public NumericValidationPage ()
+ {
+ InitializeComponent ();
+ }
+ }
+}
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPageCS.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPageCS.cs
new file mode 100644
index 0000000..cd20cc6
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/NumericValidationPageCS.cs
@@ -0,0 +1,29 @@
+using Microsoft.Maui;
+using Microsoft.Maui.Controls;
+
+namespace AttachedNumericValidationBehavior
+{
+ public class NumericValidationPageCS : ContentPage
+ {
+ public NumericValidationPageCS()
+ {
+ Title = "Numeric";
+ IconImageSource = "csharp.png";
+
+ var entry = new Entry { Placeholder = "Enter a System.Double" };
+ NumericValidationBehavior.SetAttachBehavior(entry, true);
+
+ Content = new StackLayout
+ {
+ Padding = new Thickness(0, 20, 0, 0),
+ Children = {
+ new Label {
+ Text = "Red when the number isn't valid",
+ FontSize = Device.GetNamedSize (NamedSize.Small, typeof(Label))
+ },
+ entry
+ }
+ };
+ }
+ }
+}
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/AndroidManifest.xml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/AndroidManifest.xml
new file mode 100644
index 0000000..85bd4d5
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/AndroidManifest.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/MainActivity.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/MainActivity.cs
new file mode 100644
index 0000000..50c2757
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/MainActivity.cs
@@ -0,0 +1,11 @@
+using Android.App;
+using Android.Content.PM;
+using Microsoft.Maui;
+
+namespace AttachedNumericValidationBehavior
+{
+ [Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]
+ public class MainActivity : MauiAppCompatActivity
+ {
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/MainApplication.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/MainApplication.cs
new file mode 100644
index 0000000..c8f08e4
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/MainApplication.cs
@@ -0,0 +1,16 @@
+using Android.App;
+using Android.Runtime;
+using Microsoft.Maui;
+using System;
+
+namespace AttachedNumericValidationBehavior
+{
+ [Application]
+ public class MainApplication : MauiApplication
+ {
+ public MainApplication(IntPtr handle, JniHandleOwnership ownership)
+ : base(handle, ownership)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/Resources/values/colors.xml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/Resources/values/colors.xml
new file mode 100644
index 0000000..c04d749
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/Resources/values/colors.xml
@@ -0,0 +1,6 @@
+
+
+ #512BD4
+ #2B0B98
+ #2B0B98
+
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/Resources/values/styles.xml b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/Resources/values/styles.xml
new file mode 100644
index 0000000..b749b60
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/Android/Resources/values/styles.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/AppDelegate.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/AppDelegate.cs
new file mode 100644
index 0000000..493c446
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/AppDelegate.cs
@@ -0,0 +1,10 @@
+using Foundation;
+using Microsoft.Maui;
+
+namespace AttachedNumericValidationBehavior
+{
+ [Register("AppDelegate")]
+ public class AppDelegate : MauiUIApplicationDelegate
+ {
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/Info.plist b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/Info.plist
new file mode 100644
index 0000000..77eae14
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/Info.plist
@@ -0,0 +1,32 @@
+
+
+
+
+ LSMinimumSystemVersion
+ 10.15
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/Program.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/Program.cs
new file mode 100644
index 0000000..d60e35b
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/MacCatalyst/Program.cs
@@ -0,0 +1,15 @@
+using UIKit;
+
+namespace AttachedNumericValidationBehavior
+{
+ public class Program
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, "AppDelegate");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/AppDelegate.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/AppDelegate.cs
new file mode 100644
index 0000000..493c446
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/AppDelegate.cs
@@ -0,0 +1,10 @@
+using Foundation;
+using Microsoft.Maui;
+
+namespace AttachedNumericValidationBehavior
+{
+ [Register("AppDelegate")]
+ public class AppDelegate : MauiUIApplicationDelegate
+ {
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Entitlements.plist b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Entitlements.plist
new file mode 100644
index 0000000..36a8706
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Entitlements.plist
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Info.plist b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Info.plist
new file mode 100644
index 0000000..ed2ffb6
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Info.plist
@@ -0,0 +1,34 @@
+
+
+
+
+ LSRequiresIPhoneOS
+
+ MinimumOSVersion
+ 10.3.4
+ UIDeviceFamily
+
+ 1
+ 2
+
+ UIRequiredDeviceCapabilities
+
+ arm64
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ XSAppIconAssets
+ Assets.xcassets/appicon.appiconset
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Program.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Program.cs
new file mode 100644
index 0000000..d60e35b
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Program.cs
@@ -0,0 +1,15 @@
+using UIKit;
+
+namespace AttachedNumericValidationBehavior
+{
+ public class Program
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, "AppDelegate");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Resources/LaunchScreen.xib b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Resources/LaunchScreen.xib
new file mode 100644
index 0000000..3e5075f
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Platforms/iOS/Resources/LaunchScreen.xib
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/Fonts/OpenSans-Regular.ttf b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/Fonts/OpenSans-Regular.ttf
new file mode 100644
index 0000000..29bfd35
Binary files /dev/null and b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/Fonts/OpenSans-Regular.ttf differ
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/Images/dotnet_bot.svg b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/Images/dotnet_bot.svg
new file mode 100644
index 0000000..abfaff2
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/Images/dotnet_bot.svg
@@ -0,0 +1,93 @@
+
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/appicon.svg b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/appicon.svg
new file mode 100644
index 0000000..9d63b65
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/appicon.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/appiconfg.svg b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/appiconfg.svg
new file mode 100644
index 0000000..21dfb25
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Resources/appiconfg.svg
@@ -0,0 +1,8 @@
+
+
+
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Startup.cs b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Startup.cs
new file mode 100644
index 0000000..1066d0c
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Startup.cs
@@ -0,0 +1,22 @@
+using Microsoft.Maui;
+using Microsoft.Maui.Controls.Hosting;
+using Microsoft.Maui.Controls.Xaml;
+using Microsoft.Maui.Hosting;
+
+[assembly: XamlCompilationAttribute(XamlCompilationOptions.Compile)]
+
+namespace AttachedNumericValidationBehavior
+{
+ public class Startup : IStartup
+ {
+ public void Configure(IAppHostBuilder appBuilder)
+ {
+ appBuilder
+ .UseMauiApp()
+ .ConfigureFonts(fonts =>
+ {
+ fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Directory.Build.targets b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Directory.Build.targets
new file mode 100644
index 0000000..b5eda5f
--- /dev/null
+++ b/Behaviors/AttachedNumericValidationBehavior/AttachedNumericValidationBehavior/Directory.Build.targets
@@ -0,0 +1,26 @@
+
+
+
+
+ <_KeepLaunchProfiles>true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+