Мне было интересно, как получить конкретный сеттер из объекта стиля в программном коде в silverlight.
У меня есть стиль S, который корректно загружается и применяется к некоторому объекту.Затем во время выполнения я хочу изменить один конкретный установщик этого стиля , скажем, его установщик фона (Конечно, я хочу изменить значение одного конкретного установщика).
Для этого яПосмотрел коллекцию Setters , которая имеет тип SetterBaseCollection и содержит все сеттеры этого стиля.Все идет нормально.Кажется, что эта коллекция включает все сеттеры, как они определены в XAML, но как мне получить к ним доступ?
Когда я перебираю эту коллекцию, я имею дело с объектами типа "Сеттер".Но я не знаю, как выбрать тот, который содержит свойство «Background».
// this works totally fine; the variable myStyle is getting the correct Style
myStyle = this.Resources["myStyle"] as Style;
// the myStyle.Setters collection seems to contain all setters of the style
foreach (Setter s in myStyle.Setters) {
// so now what to do to get the setter that sets the Background property of my style ??
// my naive approach did not work:
if (s.Property.ToString().equals("Background")) {
// do something
}
}
(Объекты Setter имеют атрибут Name, который фактически является тем, что я хочу выполнить для сравнениясо строкой «Background» - и отладка предложила, чтобы этот атрибут действительно содержал строку «Background» ... Но это непубличный атрибут!
Было бы замечательно , если кто-нибудьбудет иметь какие-либо предложения :)
ps Мое местное время - 03:00, поэтому я немного устал и перегружен работой - поэтому, пожалуйста, попросите меня еще раз уточнить мою проблему в случаеу тебя проблемы с угадыванием, что мне нужно;)