J'ai une application pour le suivi des dépenses. Les utilisateurs ajoutent de nouvelles dépenses via un formulaire. Les dépenses sont conservées dans une collection. Je ne connais pas encore Silverlight et je ne sais pas exactement quelle est la meilleure façon de configurer mon application. Actuellement, j'ai un DataGrid
avec des colonnes que j'ai définies pour formater les membres du ICollection
bien. Dans le code derrière, j'ai spécifié une collection à la ItemSource
de la grille de données. Chaque dépense est représentée par une classe appelée ExpenseInfo
Silverlight: Comment entrer des données dans une collection?
Pour ajouter de nouvelles dépenses, je pensais que je voudrais faire une nouvelle instance de ExpenseInfo
, et les données lier les valeurs dans les entrées de formulaire. Ensuite, lorsque l'utilisateur clique sur Envoyer, cette instance est ajoutée à la collection.
Je ne suis pas entièrement sûr de savoir comment faire cela. Est-ce que je le spécifie dans Xaml? En code-behind?
Aussi, maintenant j'ajoute ExpenseInfo
éléments à la collection de sauvegarde, mais la grille de données ne change pas. (Peut-être mon mode de liaison est erroné?) Cela fonctionne dans le constructeur de la page:
CurrentExpensesGrid.ItemsSource = expenses;
ExpenseInfo initialExpense = new ExpenseInfo() { Cost = "23", Date = DateTime.Now, WhoPaid = "foo", Name = "bar" };
initialExpense.WhoOwes.Add("baz");
initialExpense.WhoOwes.Add("ftw");
expenses.Add(initialExpense);
Cependant, ce qui suit ne fonctionne pas dans le bouton Ajouter gestionnaire d'événements, cliquez sur:
expenses.Add(newExpense);
expenses.Add(new ExpenseInfo() {Cost="2", Name="fje", Date = DateTime.Now, WhoPaid="foe"});
Et par « doesn 't travail', je veux dire que les nouveaux éléments n'apparaissent pas dans la grille de données.
Ai-je besoin de définir le mode de liaison à deux voies? Est-ce que je peux le faire sans préciser à quoi cela est lié? –