public override void SetValue(NativeView view, object value)
{
switch (value)
{
case null:
view.SetValue(DependencyProperty, null);
break;
case NativeBinding binding:
binding.Mode = IsTwoWay ? BindingMode.TwoWay : BindingMode.OneWay;
view.SetBinding(DependencyProperty, binding);
break;
default:
if (!ValueType.IsEnum)
{
value.TryChangeType(ValueType, out value);
}
value = Converter == null ? value : Converter.Invoke(value);
if (value.GetType() == PropertyType)
{
view.SetValue(DependencyProperty, value);
}
break;
}
}