2017-03-03 1 views
0

Je lie une propriété de texte d'un champ sur un sous-objet d'un objet. Dois-je instancier cet objet pour recevoir les données si l'utilisateur entre une donnée? Ou sera-t-il instancié automatiquement?La liaison dans Mvvmcross nécessite-t-elle l'instanciation de l'objet?

public class BluetoothLeDevice 
{ 
    public User User { get; set; } 
} 

public class User 
{ 
    public string Lastname { get; set; } 
} 

public class MyViewModel : MvxViewModel 
{ 
    public BluetoothLeDevice Device { get; set; } = new BluetoothLeDevice(); 
} 

private void CreateBinding(View view) 
{ 
    TextView tv_LastName = view.FindViewById<TextView>(Resource.Id.pair_stepper_user_lastname); 

    var set = this.CreateBindingSet<MyView, MyViewModel>(); 
    set.Bind(tv_LastName).For(v => v.Text).To(vm => vm.Device.User.Lastname); 
    set.Apply(); 
} 

Répondre

0

Oui, vous devez l'instancier. MvvmCross ne crée pas implicitement d'objets complexes. Il ne tombera pas en panne, mais vous verrez une erreur/un avertissement dans la sortie/le journal/la trace.

+0

Une idée pour la question suivante http://stackoverflow.com/questions/42728757/markerclick-works-but-infowindowclick-does-not-open-viewmodel – hotspring