Autor Beitrag
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.08.16 13:01 
- Nachträglich durch die Entwickler-Ecke gelöscht -
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Mi 24.08.16 13:39 
Ich bin mir nicht sicher wie der Designer das macht, aber erzeugt er nicht ein komplett neues ColumnSettings Objekt und weißt dieses dann der ListView zu? Somit hast du nämlich das Problem, dass wenn deine ColumnSettings Eigenschaft neu gesetzt wird, der Eventhandler nicht geupdated wird. Dieser reagiert nämlich nur auf die Instanz, die du in der ListView erzeugst. Ich würde mal probieren für die ColumnSettings Eigenschaft ein backing field zu erzeugen und dann in der setter Funktion das propertychanged Event des neuen Objekts zu abonnieren.

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.08.16 15:42 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 24.08.16 16:16 
Wichtig:

Wenn Du das im Setter machst, dann achte darauf, dass 1. ein eventuell vorher registrierter PropertyChangedHandler deregistriert wird und 2. der neue Handler nur registriert wird, wenn das Objekt nicht null ist.
Mag sein, dass das in deinem aktuellen Fall nicht auf tritt, aber für die Zukunft solltest Du das beachten.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
private ColumnSettings _columnSettings;
public ColumnSettings ColumnSetting 
{
    get { return _columnSettings; }
    set 
    {
        if (ColumnSetting != null)
            ColumnSetting.PropertyChanged -= ColumnSettings_PropertyChanged;

        _columnSettings = value;

        if (ColumnSetting != null)
            ColumnSetting.PropertyChanged += ColumnSettings_PropertyChanged;
    } 
}


Wenn ColumnSettings nie null sein darf, dann kannst Du ja noch einen Check value == null einbauen und/oder das Prüfen auf null vor dem EventHandler registrieren/deregistrieren entfernen.
Wichtig ist nur, dass die Property im Konstruktor dann auch einen Wert bekommt.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 24.08.16 16:48 
- Nachträglich durch die Entwickler-Ecke gelöscht -