Bonjour,
Alors sur un autre post, j'essaye de réaliser un filtre sur un DGV en passant par un BlindingSource via une DataTable qui serai rempli par une collection.
Mon filtre marche très bien mais mon souci est au niveau du remplissage de ma DataTable, j'arrive pas a prendre tous les éléments de ma collection pour les mettre dans ma DataTable.
Voila mon code de mon Form:
Mon Dico est composé de 5 alarmes qui chacune possède 4 propriétés, le tous est programmé dans mon module et na aucun interé dans ce post.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88 Public Class frmDGV Private ContextMenuStrip1 As ContextMenuStrip Private ContextMenuStrip2 As ContextMenuStrip Private Sub frmDGV_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load RemplirDico() TableForDgv() End Sub Public dtFromGrid As New DataTable() Public bs As New BindingSource Private Sub RemplirDico() Dim Alarme1 As New Alarme Alarme1.TimeDate = Now.DayOfYear Alarme1.TimeDate = Now.Hour Alarme1.Degre = "Auto" Alarme1.Evenement = "1" DicoTest.Add(Alarme1.Evenement, Alarme1) Dim Alarme2 As New Alarme Alarme2.TimeDate = Now.DayOfYear Alarme2.TimeDate = Now.Hour Alarme2.Degre = "Auto" Alarme2.Evenement = "2" DicoTest.Add(Alarme2.Evenement, Alarme2) Dim Alarme3 As New Alarme Alarme3.TimeDate = Now.DayOfYear Alarme3.TimeDate = Now.Hour Alarme3.Degre = "Manu" Alarme3.Evenement = "3" DicoTest.Add(Alarme3.Evenement, Alarme3) Dim Alarme4 As New Alarme Alarme4.TimeDate = Now.DayOfYear Alarme4.TimeDate = Now.Hour Alarme4.Degre = "Manu" Alarme4.Evenement = "4" DicoTest.Add(Alarme4.Evenement, Alarme4) Dim Alarme5 As New Alarme Alarme5.TimeDate = Now.DayOfYear Alarme5.TimeDate = Now.Hour Alarme5.Degre = "Erreur" Alarme5.Evenement = "5" DicoTest.Add(Alarme5.Evenement, Alarme5) End Sub Private Sub TableForDgv() Dim ColDate As DataColumn = New DataColumn() ColDate.ColumnName = "Date" dtFromGrid.Columns.Add(ColDate) Dim ColHeure As DataColumn = New DataColumn() ColHeure.ColumnName = "Heure" dtFromGrid.Columns.Add(ColHeure) Dim ColDegre As DataColumn = New DataColumn() ColDegre.ColumnName = "Degre" dtFromGrid.Columns.Add(ColDegre) Dim ColEven As DataColumn = New DataColumn() ColEven.ColumnName = "Evenement" dtFromGrid.Columns.Add(ColEven) ' Permet d'ajouter les colonnes du DataTable dans les colonnes du DGV For Each col As DataGridViewColumn In DataGridView1.Columns dtFromGrid.Columns.Add(col.Name) Next For i As Integer = 0 To DicoTest.Count - 1 dtFromGrid.Rows.Add(DicoTest.Item(i + 1)) Next bs.DataSource = dtFromGrid 'bs.Filter = "Degre = 'Auto'" With DataGridView1 .RowHeadersVisible = False .DataSource = bs .Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable .Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable .Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable .Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable .SelectionMode = DataGridViewSelectionMode.FullRowSelect .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells End With End Sub End Class
Sinon mon souci viens de la boucle for au moment ou je veux remplir le DataTable.
Merci d'avance pour vos suggestions.
Partager