Skip to content

Instantly share code, notes, and snippets.

@MartinZikmund
Last active February 29, 2020 19:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MartinZikmund/1f669b90bff7702f2a673a1ee5084fb9 to your computer and use it in GitHub Desktop.
Save MartinZikmund/1f669b90bff7702f2a673a1ee5084fb9 to your computer and use it in GitHub Desktop.
private IDisposable TrySetDefaultBindMode(XamlObjectDefinition xamlObjectDefinition)
{
var definedMode = xamlObjectDefinition.Members.FirstOrDefault(m => m.Member.Name == "DefaultBindMode")?.Value?.ToString();
if (definedMode == null)
{
return null;
}
else if (!IsValid(definedMode))
{
throw new InvalidOperationException(
"Invalid value specified for attribute 'DefaultBindMode'. Accepted values are 'OneWay', 'OneTime', or 'TwoWay'.");
}
else
{
_currentDefaultBindMode.Push(definedMode);
return new DisposableAction(() => _currentDefaultBindMode.Pop());
}
bool IsValid(string mode)
{
switch (mode)
{
case "OneWay":
case "OneTime":
case "TwoWay":
return true;
default:
return false;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment