Filtre un DataGrid dans WPF
Je charge une des listes d'objets dans un datagrid avec ceci:
dataGrid1.Items.Add(model);
La model
devenir des données à partir d'une base de données. Il a un Id(int)
, Name(string)
et Text(string)
Dans mon datagrid je ne montre que le Nom de la model
. Comment puis-je filtrer les datagrid maintenant, quand je rentre quelque chose dans une zone de texte?
J'étais à cette page: http://msdn.microsoft.com/en-us/library/vstudio/ff407126(v=vs. 100).aspx mais je ne comprends pas le code à partir de là, et je ne peux pas expliquer comment je dois transposer que pour mon problème.
Dites à votre problème exact. Quel est le code que vous avez créé? Nous pouvons vous dire de quoi est-ce mal.
Je ne comprends pas, comment utiliser l'objet collectionviewsource pour mon problème. Pouvez-vous m'expliquer comment je charge les données avec la collection..` dans mon datagrid et la façon de les filtrer. @Kylerrr
Je ne comprends pas, comment utiliser l'objet collectionviewsource pour mon problème. Pouvez-vous m'expliquer comment je charge les données avec la collection..` dans mon datagrid et la façon de les filtrer. @Kylerrr
OriginalL'auteur Karl_Schuhmann | 2013-03-22
Vous devez vous connecter pour publier un commentaire.
il y a plusieurs façon de filtrer Collection
voyons ce qui suggère que cela est votre Classe de l'Élément
et votre collection ressemble
Voie 1 (Prédicat):
Voie 2 (FilterEventHandler):
des Informations étendues à Façon 1
si besoin de plusieurs conditions ou certains de Filtre complexe, vous pouvez ajouter une méthode à votre Prédicat
J'aimerais voir des suggestions quant à l'approche qui est la plus appropriée en fonction de la situation actuelle. Soin d'ajouter que pour vos réponse? Il y a un endroit frais +1 en attente pour vous si vous ne... 🙂
mhh je dirais que cela dépend de vos goûts. Si vous aimez travailler avec les Événements nous le
FilterEventHandler
si vous êtes plus l'Objet amant utiliser lePredicate
solution. Je dois aussi avouer que je ne sais rien à propos des écarts de RendementOriginalL'auteur WiiMaxx
C'est une simple mise en œuvre de l'aide de la propriété de Filtre ICollectionView. Supposons que votre XAML contient ceci:
Puis dans le constructeur, vous pouvez obtenir la vue par défaut pour vos données où vous pouvez définir le prédicat de filtre qui sera exécutée pour chaque élément de votre collection. Le CollectionView ne savez pas quand il doit mettre à jour la collection, de sorte que vous devez appeler l'Actualisation lorsque l'utilisateur clique sur le bouton de recherche.
À cette url, vous pouvez trouver une description plus détaillée de CollectionViews:
http://wpftutorial.net/DataViews.html
OriginalL'auteur Loránd Biró
@WiiMaxx, ne peux pas commenter car pas assez de rep. Je voudrais être un peu plus prudent sur le direct jette. Ils peuvent être lents pour une chose et une autre, si le même filtre a été appliqué à la grille de la tenue de différents complexes de type de données que vous auriez une InvalidCastException.
Ce ne sera pas briser vous datagrid et ne filtre les résultats si la conversion échoue. Moins d'impact à vos utilisateurs, si vous obtenez le code de mal. Sur le dessus de que le filtre sera plus rapide en raison de l' "comme" opérateur de ne pas le faire de manière explicite de contrainte de type direct du cast opération.
var model = item as Model;
et nous lemodel
dans votre logique, alors il fonctionnera très bienOriginalL'auteur steve
prendre à regarder la liaison de données --> dans votre cas, ne pas ajouter des articles à votre grille, mais la itemssource
ou
et si vous voulez une sorte de filtrage,de tri, de regroupement regarder CollectionView
OriginalL'auteur blindmeis
Vous pouvez utiliser dataview filtre pour filtrer les lignes de grille de données.
Où la "table de données" est la source de données compte tenu de votre grille de données et en utilisant le générateur de chaîne vous créez le filtre de requête où "Chaîne de Filtre" est le texte que vous voulez rechercher dans votre grille de données et à dataview, et enfin définir le dataview comme itemsource à votre grille de données et de les actualiser.
OriginalL'auteur Joee