From 160a484e8bd02918b9e93666c717a908b596ddf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Rozs=C3=ADval?= Date: Mon, 11 Mar 2024 13:05:10 +0100 Subject: [PATCH] [XC] Compile bindings with Source (#20610) * Remove restriction that prevents compiling bindings with Source property * Update tests * Fix bindings with mismatch between Source type and x:DataType --- .../src/Issues.Shared/Issue11764.xaml | 7 ++++--- .../src/Issues.Shared/Issue11831.xaml | 3 ++- .../src/Issues.Shared/Issue9417.xaml | 4 ++-- .../src/Build.Tasks/SetPropertiesVisitor.cs | 1 - .../tests/Xaml.UnitTests/BindingsCompiler.xaml | 2 ++ .../tests/Xaml.UnitTests/BindingsCompiler.xaml.cs | 3 +++ .../tests/Xaml.UnitTests/Issues/Gh3606.xaml.cs | 14 ++++++++++++-- 7 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11764.xaml b/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11764.xaml index 59058675411d..2d788b8f5b1f 100644 --- a/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11764.xaml +++ b/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11764.xaml @@ -5,6 +5,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:Microsoft.Maui.Controls.ControlGallery.Issues" mc:Ignorable="d" x:Class="Microsoft.Maui.Controls.ControlGallery.Issues.Issue11764" x:Name="Issue11764Page" @@ -26,13 +27,13 @@ BackgroundColor="Red"> @@ -58,7 +59,7 @@ diff --git a/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11831.xaml b/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11831.xaml index 39288ab33c28..e712236f218d 100644 --- a/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11831.xaml +++ b/src/Compatibility/ControlGallery/src/Issues.Shared/Issue11831.xaml @@ -5,6 +5,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:local="clr-namespace:Microsoft.Maui.Controls.ControlGallery.Issues" mc:Ignorable="d" x:Class="Microsoft.Maui.Controls.ControlGallery.Issues.Issue11831" x:Name="Issue11831Page" @@ -54,7 +55,7 @@ diff --git a/src/Compatibility/ControlGallery/src/Issues.Shared/Issue9417.xaml b/src/Compatibility/ControlGallery/src/Issues.Shared/Issue9417.xaml index fada54683d2d..956596d43bb5 100644 --- a/src/Compatibility/ControlGallery/src/Issues.Shared/Issue9417.xaml +++ b/src/Compatibility/ControlGallery/src/Issues.Shared/Issue9417.xaml @@ -40,7 +40,7 @@ ProvideValue(VariableDefinitionReference context.LoggingHelper.LogWarningOrError(BuildExceptionCode.UnattributedMarkupType, context.XamlFilePath, node.LineNumber, node.LinePosition, 0, 0, vardefref.VariableDefinition.VariableType); if (vardefref.VariableDefinition.VariableType.FullName == "Microsoft.Maui.Controls.Xaml.BindingExtension" - && (node.Properties == null || !node.Properties.ContainsKey(new XmlName("", "Source"))) //do not compile bindings if Source is set && bpRef != null //do not compile bindings if we're not gonna SetBinding ) foreach (var instruction in CompileBindingPath(node, context, vardefref.VariableDefinition)) diff --git a/src/Controls/tests/Xaml.UnitTests/BindingsCompiler.xaml b/src/Controls/tests/Xaml.UnitTests/BindingsCompiler.xaml index a12f94e7b5b1..6e3adfbbe001 100644 --- a/src/Controls/tests/Xaml.UnitTests/BindingsCompiler.xaml +++ b/src/Controls/tests/Xaml.UnitTests/BindingsCompiler.xaml @@ -21,6 +21,8 @@