Binding vers un usercontrol
Bonjour,
Je voudrais savoir comment mettre en place un binding vers un userControl depuis un Form.
Mon formulaire a un référence vers mon objet modèle qui implémente INotifyPropertyChanged.
Lorsque des modifications sont apportées à mon modèle, je lève l'évènement Propertychanged.
Et je voudrais répercuter ces modifications dans un usercontrol de mon formulaire.
Voici le code, provenant de mon formulaire, de binding que je voudrais mettre en place:
Code:
1 2 3 4 5
|
Binding binding = new Binding(nameof(userControl.Data),Model,nameof(Model.Data));
binding.ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;
binding.DataSourceUpdateMode = DataSourceUpdateMode.Never;
userControl.DataBindings.Add(binding); |
Une partie du code de mon modèle:
Code:
1 2 3 4 5 6 7 8 9
|
....
RaisePropertyChanged(()=>Data);
}
public MonSousModel Data
{
get{return _data;}
} |
Une partie du code de mon userControl
Code:
1 2 3 4 5 6 7
|
private MonSousModel _data;
public MonSousModel Data
{
set{_data=value;}
get{return _data;}
} |
La classe MonSousModel n'est qu'un simple Dto
Code:
1 2 3 4 5 6
|
public class MonSousModel
{
public string lieu{get;set;}
public int NbHabitants{get;set;}
} |
Mais, à l’exécution j'obtiens l'erreur "impossible de mettre en forme la valeur avec le type souhaité".
Je ne comprends pas pourquoi? Le binding doit-il forcement être un type simple (string, int,...)?
A savoir que l'instance de MonSousModel change au cours du processus c'est pourquoi je voudrais utiliser le Binding et non une bindingSource.
Merci pour vos éclaircissements.