public int Compare(object lhs, object rhs)
{
object lhsValue = _property.GetValue(lhs, null);
object rhsValue = _property.GetValue(rhs, null);
int value = 0;
if (null != lhsValue)
{
value = ((IComparable)lhsValue).CompareTo(rhsValue);
}
else if (null != rhsValue)
{
value = ((IComparable)rhsValue).CompareTo(lhsValue);
value *= -1; // inverts the value since we changed the comparison
}
return value;
}
}