Auteur de questions
Utilisation du BindingSource

Discussion générale
-
Bonjour,
Actuellement j'ai crée une class Calendrier qui herite de ObservableCollection(of Jour). Cette class permet d'obtenir un calendrier de jour en fonction de l'année transmise au constructeur. (sub new (Annee as ushort) )
Dans mon interface, j'utilise le BindingSource afin de pourvoir profiter de la liaison de donnée automatique. Cependant je n'arrive pas à utiliser le Filtrage. Hors, pour moi c'est une propriété dont je ne peux me passer afin d'obtenir par exemple les jours d'un mois spécifique.
' Je crée un Nouveau Calendrier Année 2015 Private MonCalendrier as New Calendrier(2015) ' Voici comment je charge mon BindingSouce : BindingSource1 = new BindingSource(MonCalendrier, Nothing) DataGridView1.DataSource = BindingSource1 ' Si j'utilise la propriété suivante, cela me renvoie FAUX : Msgbox(BindingSource1.SupportFiltering)
Je connais d'autres solutions, mais je pense que le BindingSource est la manière la plus simpe et plus légère. Auparavant j'utiliserai ma Class tout simple mais je devais réinitialiser le DataSource à chaque mise à jour de cette manière :
DataGridView1.DataSource = Nothing
DatagriView1.DataSource = MonCalendrier
Voilà dans l'attente de votre aide,
Bonne Journée et merci d'avance.
Boby15000
- Type modifié Teodora SharkovaModerator dimanche 8 novembre 2015 23:37
Toutes les réponses
-
Bonjour, Boby15000,
Veuillez consulter le thread en bas:
DataGridView Filter a BindingSource with a List of object as DataSource
Je vous remercie par avance de votre retour.Cordialement,
TeodoraVotez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.
-
Bonjour,
Je vous remercie pour votre réponse. Cependant le fait de devoir implémenter l'interface IBindingListView pour seulement utiliser le Filtrage me semble vraiment trop contraignant. D'autant plus que certaines propriètès me semblent inconnues et donc je ne pourrais les renseigner comme il se doit.
Concernant l'alternative suivante :
Dim personas As New BindingList(Of Person)() From { _ New Person() With { _ Key .Apellido = "App1", _ Key .DNI = 3011, _ Key .Edad = 20, _ Key .Nombre = "Name1", _ Key .Tamano = New Decimal(1.7) _ }, _ New Person() With { _ Key .Apellido = "App2", _ Key .DNI = 1520, _ Key .Edad = 30, _ Key .Nombre = "Name2", _ Key .Tamano = New Decimal(1.5) _ }, _ New Person() With { _ Key .Apellido = "App3", _ Key .DNI = 5654, _ Key .Edad = 21, _ Key .Nombre = "Name3", _ Key .Tamano = New Decimal(1.6) _ }, _ New Person() With { _ Key .Apellido = "App4", _ Key .DNI = 778, _ Key .Edad = 40, _ Key .Nombre = "Name4", _ Key .Tamano = New Decimal(1.68) _ } _ } Dim filtered As New BindingList(Of Person)(personas.Where(Function(p) p.Apellido.Contains("App1")).ToList()) grid.DataSource = filtered
Je ne vois pas réellement la différence par rapport à mon ancienne façon de faire. Je dois forcément réinitialiser le DataSource à chaque nouveau filtre. De plus je perds la mise à jour automatique lors de la modification d'une cellule de mon DataGridView du faite de ne plus passer par un bindingSource mais un objet Calendrier dans mon cas......
En attente de nouvelles solutions....
Merci d'avance
Boby15000
-
-
Bonjour, Boby15000,
Avez-vous fait connaissance de l'article en bas? Pensez-vous que l'exemple d'implémentation de l'interface IBindingListView servira à votre objectif? :
Windows Forms Documentation Updates
Merci de nous tenir au courant.Cordialement,
TeodoraVotez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.