Bonjour à tous !
Une petite question de débutant.
J'ai du mal à saisir l'utilisation de la notification de changement entre view et viewModel (ou j'ai un simple soucis de code
).
Le décor :
J'ai une comboBox alimentée par une collection récupérée d'une bd via RIA (la table est toute bête : 1 code + un nom).
Je dispose d'un bouton permettant la modification des éléments de cette liste dans la bd qui ouvre une childWindow.
La ChildWindow dispose d'une datagrid, d'un textBox, d'un bouton Ajouter, d'un bouton mettre a jour la base.
Si je modifie un élément de ma datagrid et que je lance la MAJ de la base, pas de soucis. C'est déjà ça ...
!
Mon problème, c'est le textBox et son bouton Ajouter. Lorsque je saisie un nouvel item dans le TB et que je clique sur Ajouter, Il n'est pas visible dans ma datagrid ... Mais le contexte a bien pris en compte qu'il y avait une modif (le bouton de MAJ n'est actif que s'il y a eu modif du contexte et si je lance la MAJ de la base, le nouvel item est bien enregistré).
Voici la commande liée au bouton Ajouter :
1 2 3 4 5 6 7 8 9 10
| private void CreateCiteAntiques(string _cite)
{
CiteAntiques cite = new CiteAntiques();
cite.nomCiteAntique=_cite;
_Context.CiteAntiques.Add(cite); // Met à jour le contexte de données
// _ListeCitesAntiques.Add(cite); // (Test) Met à jour la liste affichée dans la view.
CiteAntique = null; // réinit TB de saisie.
RaisePropertyChanged("ListeCiteAntiques");
} |
ListeCiteAntiques est l'observableCollection (une collection de CiteAntiques).
Voici son implémentation sur la view.
<sdk:DataGrid AutoGenerateColumns="False" Height="170" HorizontalAlignment="Left" Margin="23,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="150" DataContext="{Binding}" ItemsSource="{Binding Path=ListeCiteAntiques, Mode=TwoWay}" Visibility="Visible">
Quelqu'un aurait une idée de là ou je bloque ? Car c'est à l'évidence moi qui ne comprends pas un truc, là ...
!!
Merci d'avance !
Frédéric
Partager