aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/CompilerServices
diff options
context:
space:
mode:
authorjpbruyere <jp.bruyere@hotmail.com>2016-02-09 18:48:58 +0100
committerjpbruyere <jp.bruyere@hotmail.com>2016-02-09 18:49:44 +0100
commit5af8e3e2a4676c38439d1e0d29a8f08163d85143 (patch)
tree4d334cd902f8b932e176e2cdbc92a7910f640e7d /src/CompilerServices
parentcf8fa60c28f4ad16cd3b82d2b74154dfc4aab532 (diff)
LogicalParent use in all bindings; Resolved boolean in Binding class to avoid multiple event registration;
resoved all tree in templated control, to allow complex bindings outside template content
Diffstat (limited to 'src/CompilerServices')
-rw-r--r--src/CompilerServices/CompilerServices.cs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/CompilerServices/CompilerServices.cs b/src/CompilerServices/CompilerServices.cs
index b640a628..4c5da03d 100644
--- a/src/CompilerServices/CompilerServices.cs
+++ b/src/CompilerServices/CompilerServices.cs
@@ -60,7 +60,7 @@ namespace Crow
public string DynMethodId {
get { return dynMethodId; }
}
-
+ public bool Resolved = false;
public MemberReference Source;
public MemberReference Target;
@@ -103,7 +103,7 @@ namespace Crow
if (tmp == null)
return false;
if (bindingExp [ptr] == "..")
- tmp = tmp.Parent as ILayoutable;
+ tmp = tmp.LogicalParent;
else if (bindingExp [ptr] == ".") {
if (ptr > 0)
throw new Exception ("Syntax error in binding, './' may only appear in first position");
@@ -143,6 +143,11 @@ namespace Crow
{
Target = null;
dynMethodId = "";
+ Resolved = false;
+ }
+ public override string ToString ()
+ {
+ return string.Format ("[Binding: {0}.{1} <= {2}]", Source.Instance, Source.Member.Name, Expression);
}
}