Listbox anhand von Daten aus DGV befüllen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Listbox anhand von Daten aus DGV befüllen

    hallo

    also ich bin jetzt schon ein ganze Stück vorran gekommen ..... nur habe ich ein Problem ich bekomme nicht das ganze DVG in die listbox ....
    Kann sich das bitte mal einer anschauen und mir da mal weiter helfen ????
    Das DVG kann unterschiedlich viele Einträge haben.

    mfg homes22

    *Thema ausgelagert von hier*

    *EXE-Anhang entfernt*
    Bilder
    • Unbenannt.png

      26,78 kB, 1.476×718, 91 mal angesehen
    • Unbenannt1.png

      10,51 kB, 645×270, 86 mal angesehen

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Marcus Gräfe“ ()

    ich hab hier 2 Probleme
    1. die Frage findich unverständlich: Du willst ein DGV in eine Listbox tun?
      Da wird dir niemand bei helfen können.
      Versuch mal zu formulieren, was du wirklich tun willst.
    2. Hier im Forum gibts die (ich finde sinnvolle!) Regel, dass man für jedes Thema einen eigenen Thread eröffnet.
    Hallo

    die Listbox ist nur dafür da das ich sehe was das programm macht .... ich bin nun aber auch schon etwas weiter ....
    @ErfinderDesRades
    ich möchte mir gern einen stab optimierungsprogroramm erstellen dazu gibt es eine demo dll von da .... astrokettle.com/pr1proc.html
    die mir erstmal vollkommen reicht .... da ist beschrieben wie man die dll im c# einbindet und auch verarbeiten kann ....
    jetzt habe ich mir den c# code nach vb.net umconvertiert .... das läuft auch ...
    das problem mit dem index 0 im DVG habe ich schon gelöst ...
    aber nun habe ich ein neues problem .... wenn ich die CALLDLL über den button aufrufe bekomme ich eine fehlermeldung .... wenn ich die CALLDLL über ENTER aufrufe läuft das Programm ordnungsgemäß durch .... Warum ??

    EDIT: ..... auch erledigt

    mfg homes22

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „homes22“ ()

    ListBoxItem(s) und DataTemplate(s) könnten helfen.

    Hi.

    Vorab: "Ich liebe Listboxen.", sagte er besinnlich dem Therapeuten. Dieser nickte nur, und wusste nicht, wovon der Patient so enthusiastisch sprach. ;)

    Für mein Verständins, nehme ich folgendes einmal an.

    In der DGV ist eine ObservableCollection als ItemsSource gebunden.
    Die Listboxen listen die "Aufzählungen" der "Unterelemente" eines DGV-Eintrags auf.

    Dahinter steck das "Master-Detail"-Prinzip.
    Der Eintrag der im DGV ausgewählt ist, ist dann das "Master", und und von diesem werden im "Detail" die Eigenschaften des Eintrags dargestellt.
    Sehr oft wird es verwendet, um "Eigenchaften" zu manipulieren.

    Das vorgehen ist so: Ein Eintrag wird ausgwählt, und dann werden die "Details" befüllt.
    Somit setzt das Binding/CodeBehind die Werte der Details mit den Eigenschaften aus dem Master-Eintrag.

    Ist schon klar im Bild zu sehen, das es so gehandhabt wird, aber nur der Ausführung wegen nochmal erwähnt.

    Ich mache das mit den ListBox-Einträgen mit DataTemplates.

    XML-Quellcode

    1. <ListBox
    2. ItemTemplate="{StaticResource DerEintragItemTemplate}"
    3. ItemsSource="{Binding DieListenEinträge, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    4. SelectedItem="{Binding DerAusgewählteEintrag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />



    Nun das ItemsSource an die DGV binden.

    XML-Quellcode

    1. <ListBox
    2. ItemTemplate="{StaticResource DerEintragItemTemplate}"
    3. ItemsSource="{Binding DGV.SelectedItem.DieListenEinträge, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
    4. SelectedItem="{Binding DerAusgewählteEintrag, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />


    Mal ein Beispiel für ein DataTemplate, in Form eines ItemTemplate.

    XML-Quellcode

    1. <DataTemplate x:Key="DerEintragItemTemplate" DataType="DerDatenTypderGrafischDargestelltwird">
    2. <StackPanel Orientation="Vertical">
    3. <ContentControl>
    4. <wasauchimmer... DataContext="{Binding}" />
    5. </ContentControl>
    6. </StackPanel>
    7. </DataTemplate>


    x:Key="DerEintragItemTemplate" - So nennen wird es in XAML um es für jeden aufruf einsetzen. Wird in der ListBox verknüpft mit ItemTemplate="{StaticResource DerEintragItemTemplate}".
    DataType="DerDatenTypderGrafischDargestelltwird" - Hiermit wird der Typ der "Dargestellt wird" angegeben, kann eine Klasse sein, und somit auch UserControls.
    <wasauchimmer... DataContext="{Binding}" /> - Wichtig! DataContext mit {Binding}, das sollte auf sich selbst in XAMl referenzieren. (Nicht korrekt formuliert, aber funktioniert)

    <wasauchimmer... ist dann z.B. ein UserControl, welches auch verschachtelt XAML enthalten kann.



    Das Bild stellt eine ListBox dar, was in deinem Fall ein DatagridView ist, und rechts ist das "Detail".

    Es kann das DataGridView auch mit DataTemplates "verschönert" werden.

    Das Beispielbild, sollte nur einmal aufzeigen wie DataTemplates aussehen können.

    "Der Impressionistische einsatz von Weichzeichungsfiltern, ist ein gelungene Hervorhebung in der sonst tristen zeitgenössischen Kunst.", schwadronierte der Kunstliebhaber. :)


    Ich habe das Bild ziemlich schnell zusammen geschustert... also nur ein Trostpreis beim Malwettberwerb.

    Ein Tutorial z.B.: youtube.com/watch?v=QpZmfQz0rek

    In deinem Fall, würde ich versuchen die Listboxen in eine einzige zu "quetschen" und die Gestaltung verschachteln.
    Ist aber wohl nicht praktikabel, wenn die "Listen" zu lang sind pro Eintrag.

    Über den Listboxen im "Detail" rechts, würde ich Lables als Überschriften mit dem ersten Listbox Eintrag ersetzen.
    Wenn das nicht gewollt ist, muss die Datatemplate so angepasst werden, das für die "Überschrift" (z.B. "Pos. Teillänge"), anders "Template-iert" wird.
    Ist unnötig aufwändig, am besten es wird in ein Label ausgliedert, und nur "gleichförmige" ListBoxitems sollen dargestellt werden.

    Ich hoffe das hilft ein wenig.

    c.u. Joshi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Joshi“ ()

    Hallo Joshi,

    erstmal, ich liebe deinen Schreibstil :thumbsup: :thumbsup:

    Aber ich fürchte deine guten Tipps werden hier nicht so viel bringen, da der TE mit WinForms arbeitet.

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor
    Uuupsie.... na dann wird es zeit auf WPF umzusteigen. Winforms, sowas von Nienties... lol

    Ich mach das auch nie wieder, Ich schwör... murmel, fluch und sowas...

    Das Stichwort ist : "umszusteigen" oder besser noch "Umpfzusteigen auf WPF"...