diff --git a/src/Markup/Perspex.Markup/Data/IndexerNode.cs b/src/Markup/Perspex.Markup/Data/IndexerNode.cs index 46663074e3..0364689735 100644 --- a/src/Markup/Perspex.Markup/Data/IndexerNode.cs +++ b/src/Markup/Perspex.Markup/Data/IndexerNode.cs @@ -53,6 +53,10 @@ namespace Perspex.Markup.Data private void IndexerPropertyChanged(object sender, PropertyChangedEventArgs e) { var typeInfo = sender.GetType().GetTypeInfo(); + if (typeInfo.GetDeclaredProperty(e.PropertyName) == null) + { + return; + } if (typeInfo.GetDeclaredProperty(e.PropertyName).GetIndexParameters().Any()) { CurrentValue = GetValue(sender); diff --git a/src/Markup/Perspex.Markup/Data/Parsers/ArgumentListParser.cs b/src/Markup/Perspex.Markup/Data/Parsers/ArgumentListParser.cs index 41ceb2ca1e..6e6c3d21fd 100644 --- a/src/Markup/Perspex.Markup/Data/Parsers/ArgumentListParser.cs +++ b/src/Markup/Perspex.Markup/Data/Parsers/ArgumentListParser.cs @@ -32,6 +32,10 @@ namespace Perspex.Markup.Data.Parsers { builder.Append(r.Take()); } + if (builder.Length == 0) + { + throw new ExpressionParseException(r.Position, "Expected indexer argument."); + } result.Add(builder.ToString()); }