/// <summary>
/// Sets the value of a dependency property.
/// </summary>
/// <param name="property">The dependency property whose value is to be set.</param>
/// <param name="value">The value to set.</param>
/// <exception cref="System.ArgumentException">Value is of wrong type for this DependencyProperty.</exception>
public void SetValue(DependencyProperty property, object value)
{
if (!property.IsValidType(value))
{
throw new ArgumentException("Value is of wrong type for this DependencyProperty.");
}
if (property.PropertyType.IsValueType)
{
SetValueType(property, value);
}
else
{
SetValueWeakRef(property, value);
}
}