mirror of https://github.com/AMT-Cheif/Stylet.git
Extend BoolToVisibilityConverter to handle more types
This commit is contained in:
parent
17d280a898
commit
ad4aa28b64
|
@ -62,8 +62,7 @@ namespace Stylet.Xaml
|
|||
result = (bool)value;
|
||||
else if (value is IEnumerable)
|
||||
result = ((IEnumerable)value).GetEnumerator().MoveNext();
|
||||
else if (value.Equals(0) || value.Equals(0u) || value.Equals(0L) || value.Equals(0uL) ||
|
||||
value.Equals(0.0f) || value.Equals(0.0) || value.Equals(0m))
|
||||
else if (value.Equals(System.Convert.ChangeType((object)0, value.GetType())))
|
||||
result = false;
|
||||
else
|
||||
result = true; // Not null, didn't meet any other falsy behaviour
|
||||
|
|
|
@ -67,6 +67,10 @@ namespace StyletUnitTests
|
|||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert(0m, null, null, null));
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert(0.0, null, null, null));
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert(0.0f, null, null, null));
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert((short)0, null, null, null));
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert((ushort)0, null, null, null));
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert((byte)0, null, null, null));
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert((sbyte)0, null, null, null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -79,6 +83,10 @@ namespace StyletUnitTests
|
|||
Assert.AreEqual(Visibility.Visible, this.converter.Convert(1m, null, null, null));
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert(1.0, null, null, null));
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert(1.0f, null, null, null));
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert((short)1, null, null, null));
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert((ushort)1, null, null, null));
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert((byte)1, null, null, null));
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert((sbyte)1, null, null, null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -109,6 +117,18 @@ namespace StyletUnitTests
|
|||
Assert.AreEqual(Visibility.Visible, this.converter.Convert(new Dictionary<string, string>() { { "A", "B" } }, null, null, null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertTreatsEmptyStringAsFalse()
|
||||
{
|
||||
Assert.AreEqual(Visibility.Collapsed, this.converter.Convert("", null, null, null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertTreatsNonEmptyStringAsTrue()
|
||||
{
|
||||
Assert.AreEqual(Visibility.Visible, this.converter.Convert("hello", null, null, null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ConvertBackThrowsIfTargetTypeIsNotBool()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue