Hilfsklasse für "Parts" für ein Control

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Gather.

    Wenn du Removed in den EventArgs mitgibst und den Index, kann der Abonnent entsprechend verfahren. Threading spielt hier eher eine nebensächliche Rolle. Wenn du ein Item entfernst, änderst du die Liste. D.h. du möchtest auf die Änderung der Liste reagieren, nicht aber auf den Aufruf, die Liste zu ändern.
    Die GUI bindet sich selbst an die Werte, die quasi spezifisch für dieses eine spezifische Control sind. ObservableCollection, etc. sind unabhängig vom Control. Das sind zwei völlig verschiedene Arten der, naja, Bindung. Während die ObservableCollection von außen an das Control herangetragen wird, sind bei den Listen-Control-Collections ohne Datenbindung die Items und die Itemlisten direkt mit dem Control verbunden und gehören wirklich diesem einen Control. Eine ObservableCollection gehört aber eben zu keinem Control, sondern ist vollständig losgelöst davon, da es eben genau die Daten bereitstellt. Wenn du die Property nicht ReadOnly machen würdest, genau dann und nur dann wäre sie unabhängig vom Control.

    Events kannst du von mir aus auch deklarieren. Ich würde es nicht machen und wenn, dann würde ich sie auf Friend setzen.

    Gruß
    ~blaze~

    ~blaze~ schrieb:

    und wenn, dann würde ich sie auf Friend setzen
    Das mit dem Friend ist auch noch mal so ne Sache. Ich mag kein Friend.
    Alles was Friend ist, geht imo nur das Control und die entsprechende Collection und/oder Hilfsklasse was an, und niemanden sonst. Solange sich das Control in einer eigenen Lib befindet, kann man das also benutzen, da dann niemand von außen Zugriff auf die Friend-Member hat, das ganze ist also schön gekapselt. Sobald ich das Control jetzt aber in der selben Lib erstellt habe, in der ich es auch verwende, dann funktioniert das nicht mehr, ich kann von beliebigen Stellen aus auf die Friend-Member zugreifen, und das will ich nicht haben.
    Betrachte bei Friend die einzelnen Komponenten als abgeschlossen. Von außen hat keiner Zugriff. Wenn jemand sich Zugriff verschafft, beachtet er die von dir definierten Richtlinien nicht, das wäre als würde man auf private Member über Reflection zugreifen. Gehe immer davon aus, dass von dir programmierte Komponenten unabhängig zusammenarbeiten.
    Friend ist zwar Assembly-intern quasi, aber die Bedeutung davon ist eher "innerhalb eines von dir abgegrenzten Bereichs." Wenn jemand sich wirklich erdreistet, sich gegen die Maßnahmen durchzusetzen, ist er selber Schuld, wenn er unerwartetes Verhalten erhält. ;) Das Friend hat er ja hfftl. bemerkt und wenn er den Kontext nicht kennt, braucht er es auch nicht zu verwenden.

    Gruß
    ~blaze~
    @~blaze~
    Ich habe mal herumgespielt, und der Codebezüglich zum Control kann garnicht funktionieren.
    Denn damit stoße ich genau auf das Problem dass ich schon hatte:

    VB.NET-Quellcode

    1. For Each item As PieChartPart In Parts
    2. total += item.Value
    3. Next
    4. For Each item As PieChartPart In Parts
    5. If i = 0 Then
    6. sweep = 0
    7. TotalValue = TotalValue + sweep
    8. g.FillPie(New SolidBrush(item.FillColor), rect, TotalValue, CSng(item.Value / total) * 360)
    9. i = 1
    10. Else
    11. sweep = CSng(item.Value / total * 360.0)
    12. TotalValue = TotalValue + sweep
    13. g.FillPie(New SolidBrush(item.FillColor), rect, TotalValue, Problem)
    14. End If
    15. Next


    Ich brauche ja die "Problem"-Variabel.
    (Nochmals der Aufbau) :

    VB.NET-Quellcode

    1. g.FillPie(brush1, rect, 0, deg1) 'Stück 1
    2. g.FillPie(brush2, rect, deg1, deg2) 'Stück 2
    3. g.FillPie(brush3, rect, deg1 + deg2, deg3) 'Stück 3
    4. g.FillPie(brush4, rect, deg1 + deg2 + deg3, deg4) 'Stück 4
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Ist mir bewusst. Ich kenne mich damit auch ausreichend aus.
    Ebenfalls benötige ich das Diagramm auch nicht, dennoch würde ich gerne weiterlernen. Und somit bringt mich dies wieder zu dem derzeitigem Fehler.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!