Программная привязка в Silverlight - PullRequest
7 голосов
/ 16 сентября 2008

Я что-то скучаю по лодке, дети. Это продолжает поднимать голову, и я не знаю, что с этим происходит, поэтому я надеюсь, что мои родные здесь могут помочь.

При работе в Silverlight, когда я создаю привязки в моем коде c #, они никогда не задерживаются при запуске приложения. Декларативные привязки из моего xaml кажутся нормальными, но я делаю что-то не так, когда создаю свои привязки в C #. Я надеюсь, что есть что-то ослепительно очевидное, что я скучаю. Вот типичная привязка, которая разбивается:

TextBlock tb = new TextBlock();
Binding b = new Binding("FontSize");
b.Source = this;
tb.SetBinding(TextBlock.FontSizeProperty, b);

Ответы [ 2 ]

7 голосов
/ 16 сентября 2008

Я только что попробовал точный код, который вы только что опубликовали, и он работал нормально, с некоторыми изменениями. Я считаю, что проблема в том, что элемент, который вы используете для вызова SetBinding, не является текстовым блоком, который вы хотите привязать. Должно быть:

TextBlock tb = new TextBlock();
Binding b = new Binding("FontSize");
b.Source = this;
tb.SetBinding(TextBlock.FontSizeProperty, b);

Убедитесь, что у вас также есть открытое свойство FontSize типа double для "this". Если «this» является пользовательским элементом управления, я бы рекомендовал переименовать свойство, чтобы не скрывать унаследованный элемент.

2 голосов
/ 02 февраля 2010

Похоже на Silverlight 3.1, по крайней мере, это больше не проблема. Я не могу воспроизвести это, во всяком случае.

...