vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Mehrere Datenstämme an ein einziges DataGridView binden? 
Autor: keco
Datum: 08.03.12 11:25

Danke für die Antwort. Asynchron heißt tatsächlich mehrere Threads. Ich überlege gerade, wo ich aber .Invoke nutzen müsste. Ich habe gerade mal schnell etwas Code geschrieben, wie ich mir das vorgestellt habe (nicht getestet).
Public Class DataGathererA ' Das gleiche nochmal mit DataGathererB
 
    Private pItems As New System.ComponentModel.BindingList(Of MyData)
 
    Public ReadOnly Property Items() As System.ComponentModel.BindingList(Of _
      MyData)
        Get
            Return pItems
        End Get
    End Property
 
    Public Sub Start()
        ' ...
    End Sub
 
End Class
 
Public Class DataBindingWrapper
 
    Private pGathererA As DataGathererA
    Private pGathererB As DataGathererB
    Private pItems As System.ComponentModel.BindingList(Of MyData)
 
    Public Sub New()
        pGathererA = New DataGathererA
        pGathererB = New DataGathererB
 
        AddHandler GathererA.Items.ListChanged, AddressOf Gatherer_ListChanged
        AddHandler GathererB.Items.ListChanged, AddressOf Gatherer_ListChanged
    End Sub
 
    Public ReadOnly Property GathererA() As DataGathererA
        Get
            Return pGathererA
        End Get
    End Property
 
    Public ReadOnly Property GathererB() As DataGathererB
        Get
            Return pGathererB
        End Get
    End Property
 
    Public ReadOnly Property Items() As System.ComponentModel.BindingList(Of _
      MyData)
        Get
            Return pItems
        End Get
    End Property
 
    Private Sub Gatherer_ListChanged(sender As System.Object, e As _
      System.ComponentModel.ListChangedEventArgs)
        If sender Is GathererA.Items Then
            Me.Items.Add(GathererA.Items(e.NewIndex))
 
        ElseIf sender Is GathererB.Items Then
            Me.Items.Add(GathererB.Items(e.NewIndex))
 
        End If
    End Sub
 
End Class
Hierbei würde ich dann per DataBinding an die Items-Eigenschaft von DataBindingWrapper binden. Bisher hatte ich immer den BGW für solche asynchronen Vorgänge genutzt, aber jetzt brauche ich mehr Kontrolle über die einzelnen Threads. Da genau diese Invoke-Geschichte vom BGW übernommen wurde, brauchte man sich dahingehend keine Gedanken zu machen und es funktionierte einfach so, dass das DGV live die Daten aktualisierte, als neue erstellt wurden. Daher weiß ich leider nicht, an welcher Stelle ich das jetzt beachten müsste. Die Threads würden dann in der DataBindingWrapper-Klasse genutzt werden. Also Dort sollen die Start-Methoden der DataGatherer-Klassen in einem neuen Thread erzeugt werden. Wo müsste ich nun Invoke nutzen?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mehrere Datenstämme an ein einziges DataGridView binden?2.001keco08.03.12 10:49
Re: Mehrere Datenstämme an ein einziges DataGridView binden?1.309ModeratorDaveS08.03.12 11:05
Re: Mehrere Datenstämme an ein einziges DataGridView binden?1.316keco08.03.12 11:25
Re: Mehrere Datenstämme an ein einziges DataGridView binden?1.295ModeratorDaveS08.03.12 13:43
Re: Mehrere Datenstämme an ein einziges DataGridView binden?1.309keco08.03.12 14:09
Re: Mehrere Datenstämme an ein einziges DataGridView binden?1.410keco12.03.12 13:07
Re: Update1.287keco12.03.12 13:25
Re: Update1.473ModeratorDaveS12.03.12 15:01

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel