@@ -20,22 +20,6 @@ public VisualState()
20
20
{
21
21
InitializeBinder ( ) ;
22
22
IsAutoPropertyInheritanceEnabled = false ;
23
-
24
- InitializeStateTriggerCollection ( ) ;
25
- InitializeSettersCollection ( ) ;
26
- }
27
-
28
- private void InitializeSettersCollection ( )
29
- {
30
- Setters = new SetterBaseCollection ( this , isAutoPropertyInheritanceEnabled : false ) ;
31
- }
32
-
33
- private void InitializeStateTriggerCollection ( )
34
- {
35
- var stateTriggers = new DependencyObjectCollection < StateTriggerBase > ( this , isAutoPropertyInheritanceEnabled : false ) ;
36
- stateTriggers . VectorChanged += OnStateTriggerCollectionChanged ;
37
-
38
- StateTriggers = stateTriggers ;
39
23
}
40
24
41
25
public string Name { get ; set ; }
@@ -86,8 +70,14 @@ public SetterBaseCollection Setters
86
70
{
87
71
get
88
72
{
73
+ if ( ! ( GetValue ( SettersProperty ) is SetterBaseCollection collection ) )
74
+ {
75
+ collection = Setters = new SetterBaseCollection ( this , isAutoPropertyInheritanceEnabled : false ) ;
76
+ }
77
+
89
78
EnsureMaterialized ( ) ;
90
- return ( SetterBaseCollection ) GetValue ( SettersProperty ) ;
79
+
80
+ return collection ;
91
81
}
92
82
93
83
internal set => SetValue ( SettersProperty , value ) ;
@@ -107,7 +97,19 @@ public SetterBaseCollection Setters
107
97
108
98
public IList < StateTriggerBase > StateTriggers
109
99
{
110
- get => ( IList < StateTriggerBase > ) GetValue ( StateTriggersProperty ) ;
100
+ get
101
+ {
102
+ if ( ! ( GetValue ( StateTriggersProperty ) is IList < StateTriggerBase > list ) )
103
+ {
104
+ var stateTriggers = new DependencyObjectCollection < StateTriggerBase > ( this , isAutoPropertyInheritanceEnabled : false ) ;
105
+ stateTriggers . VectorChanged += OnStateTriggerCollectionChanged ;
106
+
107
+ list = StateTriggers = stateTriggers ;
108
+ }
109
+
110
+ return list ;
111
+ }
112
+
111
113
internal set => SetValue ( StateTriggersProperty , value ) ;
112
114
}
113
115
0 commit comments