2009-10-28 8 views
1

J'ai récemment commencé le développement en utilisant C# et wpf. Dans notre application, nous avons un objet DataGrid que nous aimerions lier à une liste. Cependant, nous ne voulons pas que tous les entrys de la liste soient liés, seulement ceux qui répondent à certains critères. La raison pour laquelle nous ne pouvons pas nous lier à une liste séparée (par exemple, lier à une liste créée par l'application du filtre) est que nous aimerions une liaison bidirectionnelle, de sorte que lorsqu'un utilisateur ajoute une ligne à la table, il sera ajouté au liste globale.wpf de liaison dans C# à une liste filtrée

Question1: est-il possible de lier à une liste 'filtrée'? Question2: sinon quel est le meilleur moyen d'obtenir cette fonctionnalité? à savoir afficher uniquement certaines valeurs mais ajouter toutes les nouvelles entrées à la liste globale

merci à l'avance

sam

Répondre

3

Qu'est-ce que vous voulez peut être accomplised en utilisant les classes CollectionView. Voici comment créer un avec un DataTable comme source.

DataView myView = nouvelle DataView (MyDataTable); ICollectionView cv = CollectionViewSource.GetDefaultView (myView);

Vous pouvez également utiliser ObservableCollection pour une collection de vos classes personnalisées. Après avoir créé votre vue de collection, vous pouvez définir des filtres et trier et grouper. Dans l'interface utilisateur, vous liez à CollectionView et vous êtes prêt à partir. Ainsi, pour plusieurs vues des mêmes données, il suffit de créer différentes instances de CollectionView et de les lier à celles-ci. Lorsque vous mettez à jour une valeur sur l'interface utilisateur, l'élément dans votre magasin mettra à jour « automatiquement »

this site contient un assez bon, mais simple, par exemple

Questions connexes