diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2017-02-27 09:33:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-27 09:33:23 +0100 |
commit | 62056766a49f08386f4516e06f64825ad0cb8e89 (patch) | |
tree | 74a04c34bcdda8d24e2afc319a401d730531f5e2 /Xamarin.Forms.Build.Tasks | |
parent | 6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642 (diff) | |
download | xamarin-forms-62056766a49f08386f4516e06f64825ad0cb8e89.tar.gz xamarin-forms-62056766a49f08386f4516e06f64825ad0cb8e89.tar.bz2 xamarin-forms-62056766a49f08386f4516e06f64825ad0cb8e89.zip |
[Xaml] no longer require a ServiceProvider for Trigger and PropertyCo… (#771)
* [Xaml] no longer require a ServiceProvider for Trigger and PropertyCondition
* fix
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/CompiledValueProviders/TriggerValueProvider.cs | 47 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj | 1 |
2 files changed, 0 insertions, 48 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CompiledValueProviders/TriggerValueProvider.cs b/Xamarin.Forms.Build.Tasks/CompiledValueProviders/TriggerValueProvider.cs deleted file mode 100644 index 6b4f0b6b..00000000 --- a/Xamarin.Forms.Build.Tasks/CompiledValueProviders/TriggerValueProvider.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Collections.Generic; - -using Mono.Cecil; -using Mono.Cecil.Cil; - -using Xamarin.Forms.Xaml; -using Xamarin.Forms.Build.Tasks; -using System.Xml; - -namespace Xamarin.Forms.Core.XamlC -{ - class TriggerValueProvider : ICompiledValueProvider - { - public IEnumerable<Instruction> ProvideValue(VariableDefinitionReference vardefref, ModuleDefinition module, BaseNode node, ILContext context) - { - INode valueNode = null; - if (!((IElementNode)node).Properties.TryGetValue(new XmlName("", "Value"), out valueNode) && - !((IElementNode)node).Properties.TryGetValue(new XmlName("http://xamarin.com/schemas/2014/forms", "Value"), out valueNode) && - ((IElementNode)node).CollectionItems.Count == 1) - valueNode = ((IElementNode)node).CollectionItems[0]; - - if (valueNode == null) - throw new XamlParseException("Missing Value for Trigger", (IXmlLineInfo)node); - - //if it's an elementNode, there's probably no need to convert it - if (valueNode is IElementNode) - yield break; - - var value = ((string)((ValueNode)valueNode).Value); - var bpNode = ((ValueNode)((IElementNode)node).Properties[new XmlName("", "Property")]); - var bpRef = (new BindablePropertyConverter()).GetBindablePropertyFieldReference((string)bpNode.Value, module, bpNode); - - TypeReference _; - var setValueRef = module.ImportReference(module.ImportReference(typeof(Trigger)).GetProperty(p => p.Name == "Value", out _).SetMethod); - - //push the setter - yield return Instruction.Create(OpCodes.Ldloc, vardefref.VariableDefinition); - - //push the value - foreach (var instruction in ((ValueNode)valueNode).PushConvertedValue(context, bpRef, valueNode.PushServiceProvider(context, bpRef: bpRef), boxValueTypes: true, unboxValueTypes: false)) - yield return instruction; - - //set the value - yield return Instruction.Create(OpCodes.Callvirt, setValueRef); - } - } -}
\ No newline at end of file diff --git a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj index 880fa0c3..1d9086fe 100644 --- a/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj +++ b/Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj @@ -107,7 +107,6 @@ <Compile Include="CompiledConverters\TypeTypeConverter.cs" /> <Compile Include="CompiledValueProviders\SetterValueProvider.cs" /> <Compile Include="CompiledValueProviders\ICompiledValueProvider.cs" /> - <Compile Include="CompiledValueProviders\TriggerValueProvider.cs" /> <Compile Include="CompiledValueProviders\PassthroughValueProvider.cs" /> <Compile Include="CompiledConverters\ListStringTypeConverter.cs" /> <Compile Include="CompiledMarkupExtensions\TypeExtension.cs" /> |