public Binding ParseBinding (ref string expression)
{
Binding binding = new Binding ();
parsingBinding = true;
char next;
if (expression [0] == '}')
return binding;
string remaining = expression;
string piece = GetNextPiece (ref remaining, out next);
if (next == '=')
HandleProperty (binding, piece, ref remaining);
else
binding.Path = new PropertyPath (piece);
while ((piece = GetNextPiece (ref remaining, out next)) != null) {
HandleProperty (binding, piece, ref remaining);
};
parsingBinding = false;
return binding;
}