none
Utilisation du BindingSource RRS feed

  • 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

    mardi 6 octobre 2015 11:39

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,
    Teodora


    Votez! 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.

    mercredi 7 octobre 2015 10:08
    Modérateur
  • 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

    mercredi 7 octobre 2015 13:48
  • Je me permet de relancer ce post.... J'ai réellement besoin d'aide ou d'idée sur ce sujet....


    Boby15000

    jeudi 8 octobre 2015 17:13
  • 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,
    Teodora


    Votez! 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.

    jeudi 15 octobre 2015 09:06
    Modérateur