summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2017-02-27 09:33:23 +0100
committerGitHub <noreply@github.com>2017-02-27 09:33:23 +0100
commit62056766a49f08386f4516e06f64825ad0cb8e89 (patch)
tree74a04c34bcdda8d24e2afc319a401d730531f5e2 /Xamarin.Forms.Build.Tasks
parent6d9fd894e4c940c5c2d16e4a4dcf59c2fa184642 (diff)
downloadxamarin-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.cs47
-rw-r--r--Xamarin.Forms.Build.Tasks/Xamarin.Forms.Build.Tasks.csproj1
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" />