Bonjour,

Je commence le WPF et je coince sur un point:
j'ai un textbox qui est binder sur une propriété en lien avec un EDM, dans lequel je rentre n'importe une valeur et quand je clique sur un bouton il y a un controle de validation. Le soucis est que après avoir cliqué sur le bouton, mon textbox devient vide ??
Je pensais que cela venait du mode "TwoWay", mais si je me met en mode OneWay j'ai le nom de mon objet qui apparait dans textbox.

XAML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<TextBox Height="23" HorizontalAlignment="Left" Margin="37,226,0,0" Name="textBox3" VerticalAlignment="Top" Width="120">
            <Binding Path="MonClient" Mode="TwoWay">
                <Binding.ValidationRules>
                    <ctrl:ValidationText></ctrl:ValidationText>
                </Binding.ValidationRules>
            </Binding>
        </TextBox>
Le code de ma fenetre principal:
Code : 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
 
public ClientViewModel ViewModel
        {
            get { return this.DataContext as ClientViewModel; }
            set { this.DataContext = value; }
        }
 
        public Window1()
        {
            ViewModel = new ClientViewModel(); 
            InitializeComponent();
        }
 
        private void bt1_Click(object sender, RoutedEventArgs e)
        {
            Client cl = new Client();
            cl.codeClient = textBox3.Text;
 
            ViewModel.MonClient = cl;
        }
Implémentation de INotifyPropertyChanged
Code : 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 ClientViewModel: INotifyPropertyChanged
    {
        private Client _client;
 
        public Client MonClient
        {
            get { return _client; }
 
            set
            {
                if (_client != value)
                {
                    _client = value;
                    OnPropertyChanged("MonClient");
                }
            }
        }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected void OnPropertyChanged(string name)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
 
            if (handler != null)
                handler(this, new PropertyChangedEventArgs(name));
        }
    }
Merci de votre aide