Bonjour,
J'ai un textbox binder sur une entité appelé TypeEvenement (j'utilise entity framework) , une listbox binder avec un observableCollection de type TypeEvenement et un bouton "Ajouter".
Quand on clique sur Ajouter, le contenu du textbox est ajouter à la listbox.
Tout ceci fonctionne bien, par contre je voudrais réinitialiser le textbox a chaque ajout. C'est à dire vider le contenu du textbox.
Je pensais faire un textbox.text = "" mais je trouve sa moche.
Voici le code le constructeur de la fenetre avec l'initialisation des variables
L'observable collection :
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 public EvenementViewModel(IDataAccessService dataService) { _dataService = dataService; _listTypeEvenement = new ObservableCollection<TypeEvenement>(); foreach (TypeEvenement typEvent in _dataService.GetTypeEvenement().ToList<TypeEvenement>()) _listTypeEvenement.Add(typEvent); _collectionView = CollectionViewSource.GetDefaultView(_listTypeEvenement); if (_collectionView == null) throw new ArgumentNullException("collectionView"); _collectionView.CurrentChanged += new System.EventHandler(_collectionView_CurrentChanged); if (_typeEvenement == null) _typeEvenement = new TypeEvenement(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public ObservableCollection<TypeEvenement> ListeTypeEvenement { get { return _listTypeEvenement; } }
La création des type d'evenement :
Et la propriété TypeEvent lié au textbox :
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 public ICommand CreateTypeEvent { get { if (_createCommand == null) _createCommand = new RelayCommand(param => CreateEvent()); return _createCommand; } } private void CreateEvent() { _listTypeEvenement.Add(_dataService.InsertTypeEvenement(_typeEvenement)); }
Et la parti XAML :
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 public TypeEvenement TypeEvent { get { return _typeEvenement; } set { if (value != _typeEvenement) { _typeEvenement = value; OnPropertyChanged("TypeEvent"); } } }
Comment faire pour gérer cela ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <TextBox Height="23" HorizontalAlignment="Left" Margin="13,86,0,0" Name="txtTypeEvenement" Text="{Binding Path=TypeEvent.libelle, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" Width="192" /> <Label Content="Type événement" Height="28" HorizontalAlignment="Left" Margin="13,43,0,0" Name="label1" VerticalAlignment="Top" Width="100" /> <Button Content="Créer" Height="23" HorizontalAlignment="Left" Margin="144,143,0,0" Name="button1" VerticalAlignment="Top" Width="107" Command="{Binding Path=CreateTypeEvent}" /> <ListBox Height="173" HorizontalAlignment="Left" Margin="265,23,0,0" Name="lstTypeEvenement" VerticalAlignment="Top" Width="181" ItemsSource="{Binding ListeTypeEvenement}" IsSynchronizedWithCurrentItem="True"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Path=libelle}"></TextBlock> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Merci de votre aide
Partager