Updated check for virtual property

If the property is virtual we will add the delegate otherwise execute the delegate and set the value as normal