protected override object[] ConvertFrom(object value)
{
if(value == null)
return new object[1];
var nodeValue = value as Node;
var enumerableValue = value as IEnumerable;
Type propertyType = this.GetHandlerSlot(0);
if (propertyType == typeof(IEnumerable))
{
if (nodeValue != null)
return new object[] { new Node[]{ nodeValue} };
return new object[] { enumerableValue };
}
if (propertyType == typeof(Node))
{
if (nodeValue != null)
return new object[] { nodeValue };
Node node = null;
//-- get first
foreach (var n in enumerableValue)
{
node = n as Node;
break;
}
return new object[] { node };
}
return new object[1];
}