Problem is in Customer property getter.
return customer ?? new Customer();
it means:
if(customer != null)
{
return customer;
}
else
{
return new Customer();
}
Untill you set customer field you will get new Customer();
every time.
but you probably want something like this.
if(customer != null)
{
return customer;
}
else
{
customer = new Customer();
return customer;
}
or you can simply set that field :) for example in constructor of AddCustomerPresenter
and then it's not necessary to have that getter complicated.
it could be:
public Customer Customer
{
get
{
return customer;
}
set
{
customer = value;
RaisePropertyChanged(PropertyName(() => this.Customer));
}
}