DirtyNative
DirtyNative

Reputation: 2834

Xamarin.Forms - PropertyChanged set {} not called

I've got a simple LoginView and LoginViewModel. First, here is the related code of the View:

<StackLayout>
    <Entry
        Text="{Binding Email, Mode=TwoWay}" 
    />
    ...

And here is the ViewModel:

public class LoginViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged = delegate { };

    private string _email;
    public string Email
    {
        get => _email;
        set
        {
            _email = value;
            PropertyChanged(this, new PropertyChangedEventArgs(nameof(Email)));
        }
    }
    ...
}

If I say inside the Constructor something like

Email = "abc";

the Entry for sure displays the value "abc". But if I change the Text inside the Entry, the set {} is not firing so the PropertyChanged() also does not.

Do I miss something here or do I have to use BindableProperties?

Thanks in advance!

Edit 1

For anyone needing the definition of the BindingContext for LoginView, here is the Code-Behind:

[XamlCompilation(XamlCompilationOptions.Compile)]
public sealed partial class LoginView
{
    public LoginView()
    {
        InitializeComponent();

        // Set the ViewModel
        this.BindingContext = new LoginViewModel();
    }
}

Edit 2

So I created a Testproject which simply binds the TextProperty of a Entry to a Property. This works! Then I edited my existing Code (removed Baseclasses, simplified everything, etc) to simply do the same basic thing... And it doesn't work. What could this be?

Upvotes: 1

Views: 1443

Answers (1)

DirtyNative
DirtyNative

Reputation: 2834

After I updated my Xamarin.Forms version, the bug now is gone!

Upvotes: 1

Related Questions