Browse Source

add support for casting after indexer in binding path

pull/5038/head
Andrey Kunchev 6 years ago
parent
commit
c16817aac5
  1. 11
      src/Markup/Avalonia.Markup/Markup/Parsers/BindingExpressionGrammar.cs

11
src/Markup/Avalonia.Markup/Markup/Parsers/BindingExpressionGrammar.cs

@ -170,6 +170,12 @@ namespace Avalonia.Markup.Parsers
{
var (ns, owner) = ParseTypeName(ref r);
if(!r.End && r.TakeIf(')'))
{
nodes.Add(new TypeCastNode() { Namespace = ns, TypeName = owner });
return State.AfterMember;
}
if (r.End || !r.TakeIf('.'))
{
throw new ExpressionParseException(r.Position, "Invalid attached property name.");
@ -220,6 +226,11 @@ namespace Avalonia.Markup.Parsers
}
result = ParseBeforeMember(ref r, nodes);
if(r.Peek == '[')
{
result = ParseIndexer(ref r, nodes);
}
}
nodes.Add(new TypeCastNode { Namespace = ns, TypeName = typeName });

Loading…
Cancel
Save