Browse Source

Special case string -> bool conversion.

pull/278/head
Steven Kirk 11 years ago
parent
commit
5eeccf0c10
  1. 24
      src/Markup/Perspex.Markup/Binding/LogicalNotNode.cs
  2. 2
      tests/Perspex.Markup.UnitTests/Binding/ExpressionObserverTests_Negation.cs

24
src/Markup/Perspex.Markup/Binding/LogicalNotNode.cs

@ -23,14 +23,28 @@ namespace Perspex.Markup.Binding
{
if (v != PerspexProperty.UnsetValue)
{
try
var s = v as string;
if (s != null)
{
var boolean = Convert.ToBoolean(v, CultureInfo.InvariantCulture);
return !boolean;
bool result;
if (bool.TryParse(s, out result))
{
return !result;
}
}
catch
else
{
// TODO: Maybe should log something here.
try
{
var boolean = Convert.ToBoolean(v, CultureInfo.InvariantCulture);
return !boolean;
}
catch
{
// TODO: Maybe should log something here.
}
}
}

2
tests/Perspex.Markup.UnitTests/Binding/ExpressionObserverTests_Negation.cs

@ -61,7 +61,7 @@ namespace Perspex.Markup.UnitTests.Binding
}
[Fact]
public async void Should_Return_Empty_For_String_Not_Convertible_To_Boolean()
public async void Should_Return_UnsetValue_For_String_Not_Convertible_To_Boolean()
{
var data = new { Foo = "foo" };
var target = new ExpressionObserver(data, "!Foo");

Loading…
Cancel
Save