質問編集履歴

1

例追加

2016/11/23 03:25

投稿

lazex
lazex

スコア604

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,145 @@
77
77
 
78
78
 
79
79
  なんとかして添付プロパティの更新を反映させることはできないのでしょうか?
80
+
81
+
82
+
83
+ ---
84
+
85
+
86
+
87
+ ***追記***
88
+
89
+
90
+
91
+ うまく伝わっていないようなので、例をあげます
92
+
93
+
94
+
95
+ ```xaml
96
+
97
+ <StackPanel local:AClass.A="a">
98
+
99
+ <Label local:AClass.A="b">
100
+
101
+ <Label.Resources>
102
+
103
+ <Style TargetType="Label">
104
+
105
+ <Style.Triggers>
106
+
107
+ <!-- これは動く -->
108
+
109
+ <Trigger Property="local:AClass.A" Value="b">
110
+
111
+ <Setter Property="Foreground" Value="Red"/>
112
+
113
+ </Trigger>
114
+
115
+ <!-- こっちは動かない -->
116
+
117
+ <Trigger Property="Parent.local:AClass.A" Value="a">
118
+
119
+ <Setter Property="Background" Value="Blue"/>
120
+
121
+ </Trigger>
122
+
123
+ </Style.Triggers>
124
+
125
+ </Style>
126
+
127
+ </Label.Resources>
128
+
129
+ abcd
130
+
131
+ </Label>
132
+
133
+ </StackPanel>
134
+
135
+ ```
136
+
137
+
138
+
139
+ Label に添付プロパティが付与され Label の `local:AClass.A` をトリガにするならエラーはでていません
140
+
141
+
142
+
143
+ ですが StackPanel に添付プロパティが付与され Label の Parent プロパティを経由して StackPanel の `local:AClass.A` を見ようとするとエラーになります
144
+
145
+
146
+
147
+ C# コード側ですが、ここでいう StackPanel の添付プロパティを複数のイベントに応じて変更する View のコードです
148
+
149
+ ここは変更できません(Label にも同じ添付プロパティを付与するということは不可能ではないが避けたい)
150
+
151
+
152
+
153
+ 今回のやりたいことで関係あるのは
154
+
155
+ ```cs
156
+
157
+ AClass.SetA(stkpanel, "a");
158
+
159
+ ```
160
+
161
+
162
+
163
+ でセットしているということくらいなので省略します
164
+
165
+ 必要ならどういう箇所が必要かいっていただければと思います
166
+
167
+
168
+
169
+
170
+
171
+ また別例として、
172
+
173
+ ```xaml
174
+
175
+ <ListView>
176
+
177
+ <ListView.Resources>
178
+
179
+ <Style TargetType="GridViewColumnHeader">
180
+
181
+ <Style.Triggers>
182
+
183
+ <Trigger Property="Column.local:AClass.A" Value="a">
184
+
185
+ <Setter Property="Foreground" Value="Blue"/>
186
+
187
+ </Trigger>
188
+
189
+ <Trigger Property="Column.local:AClass.A" Value="b">
190
+
191
+ <Setter Property="Foreground" Value="Red"/>
192
+
193
+ </Trigger>
194
+
195
+ </Style.Triggers>
196
+
197
+ </Style>
198
+
199
+ </ListView.Resources>
200
+
201
+ <ListView.View>
202
+
203
+ <GridView>
204
+
205
+ <!-- カラムいろいろ -->
206
+
207
+ </GridView>
208
+
209
+ </ListView.View>
210
+
211
+ </ListView>
212
+
213
+ ```
214
+
215
+
216
+
217
+ ListView の GridViewColumnHeader の Trigger で Column につけられた添付プロパティを見たいというのもあります
218
+
219
+
220
+
221
+ よろしくおねがいします