Bonjour.
J'ai dans un premier temps un formulaire de données client. Celui-ci possède une Grid pour laquelle j'ai mis en DataContext l'instance de mon client récupérer de mon ViewModel.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <UserControl ...> <UserControl.DataContext> <ViewModels:MyViewModel /> </UserControl.DataContext> <Grid> <Grid DataContext="{Binding Path=Customer}"> <TextBox Text="{Binding Path=FirstName, UpdateSourceTrigger=PropertyChanged}" /> </Grid> <Button Command="{Binding Path=SaveCommand}" /> </Grid> </UserControl>
Le problème est que la modification de la propriété FirstName de mon Client ne se répercute pas. J'ai placer un point d'arrêt dans le setter mais il ne passe pas à l'intérieur.
Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public class MyViewModel : NotificationObject { public MyViewModel() { this.SaveCommand = new DelegateCommand(this.Save, this.CanSave); } public ICustomer Customer { get { return this.customer; } set { this.customer = value; this.SaveCommand.RaiseCanExecuteChanged(); } } public DelegateCommand SaveCommand { get; private set; } public bool CanSave() { return this.Customer != null && !string.IsNullOrWhiteSpace(this.Customer.FirstName) } public void Save () { } }
Pour info, je travail avec les bibliothèque de Prism pour la gestion MVVM.
Merci de votre aide
Partager