From ffe5042cfc504fb6d60cbfbc73d08aee2080ec3a Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Mon, 22 Jun 2020 13:56:20 +0200 Subject: [PATCH 01/10] Added EnumValuesExtension --- .../Extensions/Markup/EnumValuesExtension.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs new file mode 100644 index 00000000000..6b21b3a78ea --- /dev/null +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using Windows.UI.Xaml.Markup; + +namespace Microsoft.Toolkit.Uwp.UI.Extensions.Markup +{ + /// + /// A markup extension that returns a collection of values of a specific + /// + [MarkupExtensionReturnType(ReturnType = typeof(Array))] + public sealed class EnumValuesExtension : MarkupExtension + { + /// + /// Gets or sets the of the target + /// + public Type Type { get; set; } + + /// + protected override object ProvideValue() => Enum.GetValues(Type); + } +} From 02e15e67191368787127ff4fb6a25aa59a074db7 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Mon, 22 Jun 2020 14:06:57 +0200 Subject: [PATCH 02/10] Added EnumValuesExtension unit test --- .../Extensions/Markup/EnumValuesExtension.cs | 2 +- .../Extensions/Test_EnumValuesExtension.cs | 48 +++++++++++++++++++ UnitTests/UnitTests.UWP/UnitTests.UWP.csproj | 1 + 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 UnitTests/UnitTests.UWP/Extensions/Test_EnumValuesExtension.cs diff --git a/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs b/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs index 6b21b3a78ea..d697267485f 100644 --- a/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs +++ b/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/EnumValuesExtension.cs @@ -5,7 +5,7 @@ using System; using Windows.UI.Xaml.Markup; -namespace Microsoft.Toolkit.Uwp.UI.Extensions.Markup +namespace Microsoft.Toolkit.Uwp.UI.Extensions { /// /// A markup extension that returns a collection of values of a specific diff --git a/UnitTests/UnitTests.UWP/Extensions/Test_EnumValuesExtension.cs b/UnitTests/UnitTests.UWP/Extensions/Test_EnumValuesExtension.cs new file mode 100644 index 00000000000..a46f6f7b864 --- /dev/null +++ b/UnitTests/UnitTests.UWP/Extensions/Test_EnumValuesExtension.cs @@ -0,0 +1,48 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using Microsoft.Toolkit.Uwp.UI.Extensions; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.VisualStudio.TestTools.UnitTesting.AppContainer; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Markup; + +namespace UnitTests.Extensions +{ + [TestClass] + public class Test_EnumValuesExtension + { + [TestCategory("EnumValuesExtension")] + [UITestMethod] + public void Test_EnumValuesExtension_MarkupExtension() + { + var treeroot = XamlReader.Load(@" + +") as FrameworkElement; + + var list = treeroot.FindChildByName("Check") as ListView; + + Assert.IsNotNull(list, "Could not find listview control in tree."); + + Animal[] items = list.ItemsSource as Animal[]; + + Assert.IsNotNull(items, "The items were not created correctly"); + + CollectionAssert.AreEqual(items, Enum.GetValues(typeof(Animal))); + } + } + + public enum Animal + { + Cat, + Dog, + Bunny + } +} diff --git a/UnitTests/UnitTests.UWP/UnitTests.UWP.csproj b/UnitTests/UnitTests.UWP/UnitTests.UWP.csproj index fbe6e7ddace..522f0c92642 100644 --- a/UnitTests/UnitTests.UWP/UnitTests.UWP.csproj +++ b/UnitTests/UnitTests.UWP/UnitTests.UWP.csproj @@ -132,6 +132,7 @@ + From 8fe1aea2367777a5b0ce1f04218c5c0314ae197a Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Mon, 22 Jun 2020 22:20:02 +0200 Subject: [PATCH 03/10] Added EnumValuesExtension to .rd.xml file --- UnitTests/UnitTests.UWP/Properties/UnitTestApp.rd.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/UnitTests/UnitTests.UWP/Properties/UnitTestApp.rd.xml b/UnitTests/UnitTests.UWP/Properties/UnitTestApp.rd.xml index be5c4987ee3..98511bbba74 100644 --- a/UnitTests/UnitTests.UWP/Properties/UnitTestApp.rd.xml +++ b/UnitTests/UnitTests.UWP/Properties/UnitTestApp.rd.xml @@ -35,6 +35,7 @@ + \ No newline at end of file From 4b7eb2a23ebf0e409a6ba50885fafe9d0c5d9bd4 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 25 Jun 2020 18:32:05 +0200 Subject: [PATCH 04/10] Fixed test for EnumValuesExtension --- UnitTests/UnitTests.UWP/UnitTestApp.xaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/UnitTests/UnitTests.UWP/UnitTestApp.xaml b/UnitTests/UnitTests.UWP/UnitTestApp.xaml index ab5fb38f2f8..7d37353cf4b 100644 --- a/UnitTests/UnitTests.UWP/UnitTestApp.xaml +++ b/UnitTests/UnitTests.UWP/UnitTestApp.xaml @@ -6,6 +6,10 @@ RequestedTheme="Light" > + + + Cat + From 6d85170b7cce2afca3699dde4ada470237fdfd7c Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 25 Jun 2020 21:08:40 +0200 Subject: [PATCH 05/10] Added empty EnumValuesExtensionPage setup --- .../Microsoft.Toolkit.Uwp.SampleApp.csproj | 9 +++++++ .../EnumValuesExtensionPage.xaml | 12 +++++++++ .../EnumValuesExtensionPage.xaml.cs | 27 +++++++++++++++++++ .../EnumValuesExtensionXaml.bind | 16 +++++++++++ .../SamplePages/samples.json | 25 ++++++++++------- 5 files changed, 80 insertions(+), 9 deletions(-) create mode 100644 Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml create mode 100644 Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs create mode 100644 Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj index f59e5ef0f25..4fb38f0efa6 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj +++ b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj @@ -516,6 +516,9 @@ + + EnumValuesExtensionPage.xaml + TilesBrushPage.xaml @@ -617,6 +620,7 @@ + @@ -995,6 +999,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -1564,6 +1572,7 @@ Visual C++ 2015 Runtime for Universal Windows Platform Apps + 14.0 diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml new file mode 100644 index 00000000000..d2816d2a123 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml @@ -0,0 +1,12 @@ + + + + + + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs new file mode 100644 index 00000000000..3e1b94932f4 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs @@ -0,0 +1,27 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.Toolkit.Uwp.UI.Extensions; +using Windows.UI.Xaml; + +namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages +{ + /// + /// A page that shows how to use the type. + /// + public sealed partial class EnumValuesExtensionPage : IXamlRenderListener + { + /// + /// Initializes a new instance of the class. + /// + public EnumValuesExtensionPage() + { + InitializeComponent(); + } + + public void OnXamlRendered(FrameworkElement control) + { + } + } +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind new file mode 100644 index 00000000000..c120580f74c --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json index 19d92d44eaa..568e8146ad5 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json @@ -1266,15 +1266,22 @@ "XamlCodeFile": "OnDeviceXaml.bind", "DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/OnDeviceMarkup.md" }, - { - "Name": "IconExtensions", - "Type": "IconExtensionsPage", - "About": "Markup extensions to easily create various types of icons.", - "CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/FontIconExtension", - "XamlCodeFile": "IconExtensionsXaml.bind", - "Icon": "/Assets/Helpers.png", - "DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/IconExtensions.md" - } + { + "Name": "IconExtensions", + "Type": "IconExtensionsPage", + "About": "Markup extensions to easily create various types of icons.", + "CodeUrl": "https://github.com/windows-toolkit/WindowsCommunityToolkit/tree/master/Microsoft.Toolkit.Uwp.UI/Extensions/Markup/FontIconExtension", + "XamlCodeFile": "IconExtensionsXaml.bind", + "Icon": "/Assets/Helpers.png", + "DocumentationUrl": "https://raw.githubusercontent.com/MicrosoftDocs/WindowsCommunityToolkitDocs/master/docs/extensions/IconExtensions.md" + }, + { + "Name": "EnumValuesExtension", + "Type": "EnumValuesExtensionPage", + "About": "The EnumValuesExtension markup extension allows you to easily retrieve a collection of all values from an enum type.", + "Icon": "/Assets/Helpers.png", + "XamlCodeFile": "EnumValuesExtensionXaml.bind" + } ] }, { From 22792007da37478d52a301ca1d1fa0c995a00f59 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 25 Jun 2020 21:19:24 +0200 Subject: [PATCH 06/10] Added initial sample with direct enum display --- .../Microsoft.Toolkit.Uwp.SampleApp.csproj | 1 + .../EnumValuesExtensionCode.bind | 9 +++++++++ .../EnumValuesExtensionPage.xaml | 8 +++++++- .../EnumValuesExtensionPage.xaml.cs | 17 ++++++++++++++++- .../EnumValuesExtensionXaml.bind | 6 ++++++ .../SamplePages/samples.json | 3 ++- 6 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj index 4fb38f0efa6..e3c7920ed7d 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj +++ b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj @@ -621,6 +621,7 @@ + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind new file mode 100644 index 00000000000..bead1785907 --- /dev/null +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind @@ -0,0 +1,9 @@ +// Let's declare a sample enum +public enum Animal +{ + Cat, + Dog, + Bunny, + Parrot, + Squirrel +} \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml index d2816d2a123..c548d250f7a 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml @@ -4,9 +4,15 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ex="using:Microsoft.Toolkit.Uwp.UI.Extensions" + xmlns:enums="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages.Enums" mc:Ignorable="d"> + + Cat + - + + + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs index 3e1b94932f4..7e02553d519 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs @@ -24,4 +24,19 @@ public void OnXamlRendered(FrameworkElement control) { } } -} \ No newline at end of file +} + +#pragma warning disable SA1403 // File may only contain a single namespace +namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages.Enums +{ + public enum Animal + { + Cat, + Dog, + Bunny, + Parrot, + Squirrel + } +} + +#pragma warning restore SA1403 diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind index c120580f74c..3ad0a740079 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind @@ -5,12 +5,18 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ex="using:Microsoft.Toolkit.Uwp.UI.Extensions" + xmlns:enums="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages.Enums" mc:Ignorable="d"> + + + \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json index 568e8146ad5..7cba82117d9 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/samples.json @@ -1280,7 +1280,8 @@ "Type": "EnumValuesExtensionPage", "About": "The EnumValuesExtension markup extension allows you to easily retrieve a collection of all values from an enum type.", "Icon": "/Assets/Helpers.png", - "XamlCodeFile": "EnumValuesExtensionXaml.bind" + "XamlCodeFile": "EnumValuesExtensionXaml.bind", + "CodeFile": "EnumValuesExtensionCode.bind" } ] }, From 41065bcfd7c3efdd76f39fac9b435826dc80479b Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Thu, 25 Jun 2020 21:36:09 +0200 Subject: [PATCH 07/10] Added second sample with a converter --- .../Microsoft.Toolkit.Uwp.SampleApp.csproj | 1 + .../EnumValuesExtensionCode.bind | 22 ++++++++++++++ .../EnumValuesExtensionPage.xaml | 21 +++++++++++-- .../EnumValuesExtensionPage.xaml.cs | 30 ++++++++++++++++++- .../EnumValuesExtensionXaml.bind | 27 ++++++++++++++++- 5 files changed, 97 insertions(+), 4 deletions(-) diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj index e3c7920ed7d..41d731d9d78 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj +++ b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj @@ -21,6 +21,7 @@ x86|x64|arm|arm64 MiddleClickScrolling-CursorType.res false + 8.0 true diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind index bead1785907..33f73c51b56 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionCode.bind @@ -6,4 +6,26 @@ public enum Animal Bunny, Parrot, Squirrel +} + +// We can use a converter to get other values from our enum +public sealed class AnimalToColorConverter : IValueConverter +{ + public object Convert(object value, Type targetType, object parameter, string language) + { + return (Animal)value switch + { + Animal.Cat => Colors.Coral, + Animal.Dog => Colors.Gray, + Animal.Bunny => Colors.Green, + Animal.Parrot => Colors.YellowGreen, + Animal.Squirrel => Colors.SaddleBrown, + _ => throw new ArgumentException("Invalid value", nameof(value)) + }; + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml index c548d250f7a..3ce0769f035 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml @@ -4,15 +4,32 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ex="using:Microsoft.Toolkit.Uwp.UI.Extensions" - xmlns:enums="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages.Enums" + xmlns:enums="using:Microsoft.Toolkit.Uwp.SampleApp.Enums" + xmlns:converters="using:Microsoft.Toolkit.Uwp.SampleApp.Converters" mc:Ignorable="d"> Cat + - + + + + + + + + + + + + + + diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs index 7e02553d519..c3313a47588 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionPage.xaml.cs @@ -2,8 +2,12 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System; +using Windows.UI; using Microsoft.Toolkit.Uwp.UI.Extensions; using Windows.UI.Xaml; +using Windows.UI.Xaml.Data; +using Microsoft.Toolkit.Uwp.SampleApp.Enums; namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages { @@ -27,7 +31,7 @@ public void OnXamlRendered(FrameworkElement control) } #pragma warning disable SA1403 // File may only contain a single namespace -namespace Microsoft.Toolkit.Uwp.SampleApp.SamplePages.Enums +namespace Microsoft.Toolkit.Uwp.SampleApp.Enums { public enum Animal { @@ -39,4 +43,28 @@ public enum Animal } } +namespace Microsoft.Toolkit.Uwp.SampleApp.Converters +{ + public sealed class AnimalToColorConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, string language) + { + return (Animal)value switch + { + Animal.Cat => Colors.Coral, + Animal.Dog => Colors.Gray, + Animal.Bunny => Colors.Green, + Animal.Parrot => Colors.YellowGreen, + Animal.Squirrel => Colors.SaddleBrown, + _ => throw new ArgumentException("Invalid value", nameof(value)) + }; + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + throw new NotImplementedException(); + } + } +} + #pragma warning restore SA1403 diff --git a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind index 3ad0a740079..b848cb4d075 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind +++ b/Microsoft.Toolkit.Uwp.SampleApp/SamplePages/EnumValuesExtension/EnumValuesExtensionXaml.bind @@ -5,8 +5,12 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ex="using:Microsoft.Toolkit.Uwp.UI.Extensions" - xmlns:enums="using:Microsoft.Toolkit.Uwp.SampleApp.SamplePages.Enums" + xmlns:enums="using:Microsoft.Toolkit.Uwp.SampleApp.Enums" + xmlns:converters="using:Microsoft.Toolkit.Uwp.SampleApp.Converters" mc:Ignorable="d"> + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 15cecd4b9ea4e47266e51d2a94ae45ce681d8e4d Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Fri, 26 Jun 2020 12:27:12 +0200 Subject: [PATCH 08/10] Removed empty ItemGroup from sample app .csproj --- .../Microsoft.Toolkit.Uwp.SampleApp.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj index 41d731d9d78..6426c03d171 100644 --- a/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj +++ b/Microsoft.Toolkit.Uwp.SampleApp/Microsoft.Toolkit.Uwp.SampleApp.csproj @@ -1574,7 +1574,6 @@ Visual C++ 2015 Runtime for Universal Windows Platform Apps - 14.0 From e4b1dec8e787ff31abf6d2ad617ebd236c8a8ce5 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Tue, 30 Jun 2020 14:58:29 -0700 Subject: [PATCH 09/10] Correct default AutomationProperties.Name for GridSplitter Fixes #3372 --- Microsoft.Toolkit.Uwp.UI.Controls/Strings/en-US/Resources.resw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Microsoft.Toolkit.Uwp.UI.Controls/Strings/en-US/Resources.resw b/Microsoft.Toolkit.Uwp.UI.Controls/Strings/en-US/Resources.resw index 4235b160a2b..9bb6da66861 100644 --- a/Microsoft.Toolkit.Uwp.UI.Controls/Strings/en-US/Resources.resw +++ b/Microsoft.Toolkit.Uwp.UI.Controls/Strings/en-US/Resources.resw @@ -202,7 +202,7 @@ Narrator Resource for BladeView expanded status - GridSpliter + GridSplitter Narrator Resource for GridSplitter control From 175dbc0bd0b97d7a0a06759222e0d6af49660d83 Mon Sep 17 00:00:00 2001 From: "Michael Hawker MSFT (XAML Llama)" <24302614+michael-hawker@users.noreply.github.com> Date: Thu, 9 Jul 2020 14:54:37 -0700 Subject: [PATCH 10/10] Forgot to update Production shields to 6.1 --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 23f2aacaa24..0db48418d7e 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ The Windows Community Toolkit is a collection of helper functions, custom contro ## Build Status | Target | Branch | Status | Recommended package version | | ------ | ------ | ------ | ------ | -| Production | rel/6.0.0 | [![Build Status](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_apis/build/status/Toolkit-CI?branchName=rel/6.0.0)](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_build/latest?definitionId=10&branchName=rel/6.0.0) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Toolkit.Uwp.svg)](https://www.nuget.org/profiles/Microsoft.Toolkit) | +| Production | rel/6.1.0 | [![Build Status](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_apis/build/status/Toolkit-CI?branchName=rel/6.1.0)](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_build/latest?definitionId=10&branchName=rel/6.1.0) | [![NuGet](https://img.shields.io/nuget/v/Microsoft.Toolkit.Uwp.svg)](https://www.nuget.org/profiles/Microsoft.Toolkit) | | Pre-release beta testing | master | [![Build Status](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_apis/build/status/Toolkit-CI?branchName=master)](https://dev.azure.com/dotnet/WindowsCommunityToolkit/_build/latest?definitionId=10) | [![MyGet](https://img.shields.io/dotnet.myget/uwpcommunitytoolkit/vpre/Microsoft.Toolkit.Uwp.svg)](https://dotnet.myget.org/gallery/uwpcommunitytoolkit) | ## Getting Started