Question: I am struggling right now to check all my InputFields wether they `== ""`.

I found many solutions here but somehow it doesnt work.

I have a RegistrationModal and a RegistrationController.

In the modal I tryed to check the fields like that:

```
public boolean RegisterUser(String user, String vorname, String nachname) throws SQLException {

    PreparedStatement preparedStatement = null;

    if (user == "" || vorname == "" || nachname == "") {
        System.out.println("Fill in all fields");
        return false;
    }
// Here follows the SQL query the prepared statement and exequte
}

```

But it it never uses this if statement, I have no idea why?

I also tryed to catch the empty element in the controller:

```
public void Absenden(ActionEvent event) {
    try {
        if (registerModel.RegisterUser(txt_user.getText(), txt_vorname.getText(),
                txt_nachname.getText())) {

            if (registerModel.RegisterUser(txt_user.getText().trim().isEmpty(), txt_vorname.getText().trim().isEmpty(),
                    txt_nachname.getText().trim().isEmpty())) {
                System.out.println("False! Do something?");
            }

            // Here opens the new window with a notification Registration was successfull
            ((Node) event.getSource()).getScene().getWindow().hide();
}

```

Here I had errors so thats why two if statement which already seems weird, I had to autogenerate a new method in model to make this work with booleans, but still it never used this if statement.

I tryed to give only relevant code, otherwise it would be much more.

Maybe someone has an idea.

Thanks

Answer: 
The MVVMCross bindings work by binding to an object's properties and while android:textColor works fine in Android XML it is a shortcut to the object's underlying method, SetTextColor which you can't bind to directly. What you can do is create a class that extends the TextView and have a bindable TextColor property and then use that in your Android XML and bind to that. For example:

```
public class ExtendedTextView : TextView
{
    public ExtendedTextView(Context context): base (context) { }
    public ExtendedTextView(Context context, IAttributeSet attrs) : base (context, attrs) { }
    public ExtendedTextView(Context context, IAttributeSet attrs, int defStyleAttr) : base(context, attrs, defStyleAttr) { }
    public ExtendedTextView(Context context, IAttributeSet attrs, int defStyleAttr, int defStyleRes) : base (context, attrs, defStyleAttr, defStyleRes) { }
    protected ExtendedTextView(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer) { }

    public Color BindableTextColor // property to bind to in XML
    {
        get { return new Color(CurrentTextColor); }
        set { SetTextColor(value);}
    }
}

```
Thanks for the input all - ideally I would have used @sven-michael's cross-platform solution but I ended up implementing a custom binding in Android.

My code is below. Note that `MvxBaseAndroidTargetBinding` is now called `MvxAndroidTargetBinding`.

```
public class TextColorBinding : MvxAndroidTargetBinding {

    private readonly TextView _textView;

    public TextColorBinding(TextView textView) : base(textView)
    {

        _textView = textView;
    }

    public static void Register(IMvxTargetBindingFactoryRegistry registry) {
        registry.RegisterFactory(new MvxCustomBindingFactory<TextView>("TextColor", (textView) => new TextColorBinding(textView)));
    }

    #region implemented abstract members of MvxTargetBinding

    public override Type TargetType
    {
        get { return typeof(Color); }
    }

    #endregion

    #region implemented abstract members of MvxConvertingTargetBinding

    protected override void SetValueImpl (object target, object value)
    {
        var color = (Color)value;

        if (color != null) {

            var textView = (TextView)target;

            try {
                textView.SetTextColor (color);
            } catch (Exception ex) {
                MvxTrace.Error (ex.ToLongString ());
                throw;
            }

        } else {
            MvxBindingTrace.Trace (MvxTraceLevel.Warning, "Value was not a valid Color");
        }
    }
    #endregion
} 

```

Don't forget to register the binding in your Setup.cs as follows too:

```
protected override void FillTargetFactories(MvvmCross.Binding.Bindings.Target.Construction.IMvxTargetBindingFactoryRegistry registry)
    {
        TextColorBinding.Register (registry);
        base.FillTargetFactories(registry);
    }

```