Comment faire une boucle sur les lignes de WPF toolkit Datagrid
J'ai donc le code suivant où j'ai défini une WPF toolkit contrôle datagrid appelé dgQuery; j'ai rempli avec les informations d'un ensemble de données, puis j'ai inséré une nouvelle case à cocher dans la colonne dgQuery pour cocher/décocher certaines lignes, je montre une partie de mon code C#:
dgQuery.DataContext = dS.Tables[0];
DataGridTemplateColumn cbCol = new DataGridTemplateColumn();
cbCol.Header = "Opc";
FrameworkElementFactory factory = new FrameworkElementFactory(typeof(CheckBox));
Binding bind = new Binding("IsSelected");
bind.Mode = BindingMode.TwoWay;
factory.SetValue(CheckBox.IsCheckedProperty, bind);
DataTemplate cellTemplate = new DataTemplate();
cellTemplate.VisualTree = factory;
cbCol.CellTemplate = cellTemplate;
dgQuery.Columns.Insert(0, cbCol);
Après cochant/décochant dans la nouvelle case à cocher de la colonne de la dgQuery lignes, je vais cliquer sur un bouton pour enregistrer dans une base de données uniquement les lignes que j'ai vérifié. La question est, comment puis-je développer la boucle pour la lecture de toutes les lignes de dgQuery et de la condition qui me permettra de savoir les lignes qui ont la case cochée/décochée? M'aider avec un exemple, s'il vous plaît.
Merci!!
OriginalL'auteur Tristan | 2009-12-20
Vous devez vous connecter pour publier un commentaire.
ce sera de retour a 'la ligne' dans votre grille de données
en wpf datagrid, les lignes sont ItemSource.les éléments... pas de Lignes de propriété!
Espère que cela aide...
Comment pouvons-nous obtenir de l'index de ligne tout en boucle pour chaque ligne
OriginalL'auteur Tony The Lion
Pourquoi n'essayez-vous pas MarkB la solution pour votre accès à votre de la case à cocher dans votre grille de données?
J'ai posé la question à nouveau pour vous sur ce forum, parce que je ne pouvais pas trouver comment le faire moi-même, donc voici le thread de réponse: stackoverflow.com/questions/1936732/... Utilisation de la réponse que j'ai accepté! Je n'ai pas essayé moi-même, mais il regarde comme il devrait fonctionner! Bonne chance! Laissez-moi savoir ce qui s'est passé s'il vous plaît?
Tony, encore une fois merci pour votre aide. J'ai lu 1936732 et j'ai eu beaucoup de doutes dans l'application pour mon cas, j'ai décidé d'utiliser votre solution originale, d'Abord, j'ai ajouté une nouvelle colonne de type Bool pour le jeu de données de sorte qu'il simule maintenant une case à cocher (bien que je le case double-clic :-)), je pense que c'est facile et propre solution pour le moment. Mes salutations les meilleures.
OriginalL'auteur Tony The Lion
Ne sais pas si c'est utile, parce qu'elle suppose une approche différente de ce que vous avez commencé avec, mais plutôt que de travailler directement avec la grille, vous pouvez la lier à une ObservableCollection des objets qui ont des propriétés pour chaque colonne. Si vous ajoutez un bool propriété dans votre objet pour "Sélectionné" et de lier la colonne de cases à cocher, vous pouvez alors interroger la collecte, à tout moment, pour ce qui est sélectionné, comme ceci:
Donc MemberEntity est une classe qui possède une propriété pour chacune des colonnes dans votre grille, y compris un bool appelé Sélectionné pour la colonne de cases à cocher. _memberEntities est une ObservableCollection de MemberEntity instances. La grille de l'ItemSource de propriété est lié à _memberEntities et de chacune de ses colonnes de propriétés de Liaison sont liés à une propriété dans MemberEntity comme ceci, en supposant que Sélectionné et le Nom sont des propriétés MemberEntity:
Sonne bien Tristan. Le principal avantage de cette approche est la séparation de votre code à partir de la présentation. Ainsi, votre code met l'accent sur une collection à la place d'un contrôle d'INTERFACE utilisateur. Cela signifie que si vous modifiez le contrôle d'INTERFACE utilisateur plus tard, votre code ne sera probablement pas avoir à le changer. Aussi, le test unitaire est plus facile parce que vous pouvez définir par programmation le sélectionner des éléments par la manipulation de la collection au lieu d'essayer de manipuler l'INTERFACE utilisateur.
OriginalL'auteur Mark Bostleman
OriginalL'auteur Gayathri Gollavilli