2008-09-16 2 views
7

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

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

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

Как вы называете «раздавленным»? Совместимость просто не работает? – 2008-09-16 13:02:10

+0

Да, это не похоже на эффект во время выполнения. – MojoFilter 2008-09-16 13:16:22

+10

У меня возникает соблазн проголосовать за использование слова «домашний». :-) – 2008-10-07 02:31:36

ответ

2

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

7

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

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

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

Смежные вопросы