12 changed files with 102 additions and 75 deletions
@ -0,0 +1,42 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using Avalonia.Data; |
||||
|
|
||||
|
namespace Avalonia.Markup.Data |
||||
|
{ |
||||
|
internal class MarkupBindingChainException : BindingChainException |
||||
|
{ |
||||
|
private IList<string> _nodes = new List<string>(); |
||||
|
|
||||
|
public MarkupBindingChainException(string message) |
||||
|
: base(message) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
public MarkupBindingChainException(string message, string node) |
||||
|
: base(message) |
||||
|
{ |
||||
|
AddNode(node); |
||||
|
} |
||||
|
|
||||
|
public MarkupBindingChainException(string message, string expression, string expressionNullPoint) |
||||
|
: base(message, expression, expressionNullPoint) |
||||
|
{ |
||||
|
_nodes = null; |
||||
|
} |
||||
|
|
||||
|
public bool HasNodes => _nodes.Count > 0; |
||||
|
public void AddNode(string node) => _nodes.Add(node); |
||||
|
|
||||
|
public void Commit(string expression) |
||||
|
{ |
||||
|
Expression = expression; |
||||
|
ExpressionErrorPoint = string.Join(".", _nodes.Reverse()) |
||||
|
.Replace(".!", "!") |
||||
|
.Replace(".[", "[") |
||||
|
.Replace(".^", "^"); |
||||
|
_nodes = null; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,33 +0,0 @@ |
|||||
using System.Collections.Generic; |
|
||||
using System.Linq; |
|
||||
using Avalonia.Data; |
|
||||
|
|
||||
namespace Avalonia.Markup.Data |
|
||||
{ |
|
||||
internal class MarkupBindingChainNullException : BindingChainNullException |
|
||||
{ |
|
||||
private IList<string> _nodes = new List<string>(); |
|
||||
|
|
||||
public MarkupBindingChainNullException() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
public MarkupBindingChainNullException(string expression, string expressionNullPoint) |
|
||||
: base(expression, expressionNullPoint) |
|
||||
{ |
|
||||
_nodes = null; |
|
||||
} |
|
||||
|
|
||||
public bool HasNodes => _nodes.Count > 0; |
|
||||
public void AddNode(string node) => _nodes.Add(node); |
|
||||
|
|
||||
public void Commit(string expression) |
|
||||
{ |
|
||||
Expression = expression; |
|
||||
ExpressionNullPoint = string.Join(".", _nodes.Reverse()) |
|
||||
.Replace(".!", "!") |
|
||||
.Replace(".[", "["); |
|
||||
_nodes = null; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue