2008-09-16 17 views
7

Buradaki bir şeyi tekneyle kaçırıyorum çocuklar. Bu onun kafasını büyütmeye devam ediyor ve bununla ne olduğunu bilmiyorum, bu yüzden ev arkadaşlarımın yardım edebileceğini umuyorum.Silverlight'ta programsal ciltleme

Silverlight'ta çalışırken, C# kodumda bağlayıcılar oluşturduğumda, uygulama çalışırken asla dayanmazlar. Benim xaml bildirimleri bağlayıcı görünüyor, ama C# benim bağlarım oluştururken yanlış bir şey yapıyorum. Umarım eksik olduğum açık bir şey vardır. İşte ezilmiş alır o tipik bağlama açıklanmıştır:

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

Nasıl "ezilmiş" demek istiyorsun? Bağlanma hiç işe yaramıyor mu? –

+0

Evet, çalışma zamanında herhangi bir etkisi yok gibi görünüyor. – MojoFilter

+10

'Ev gibi' kelimesinin kullanımı için sizi oylamaya davet ediyorum. :-) –

cevap

2

En azından Silverlight 3.1 gibi görünüyor, bu artık bir sorun değil. Her halükarda onu üretemem.

+0

http://stackoverflow.com/questions/3217740/silverlight-4-setbinding-not-working gibi bir şey üretebilirim – cmaduro

7

Sadece sadece yayınlanmıştır tam kodunu denedim ve bazı değişikliklerle, iyi çalıştı. Sorunun, SetBinding çağrısı için kullandığınız öğenin bağlamak istediğiniz metin bloğu olmadığını düşünüyorum. Olmalıdır:

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

ayrıca "bu" çift türde bir FontSize kamu malına olduğundan emin olun. "Bu" bir kullanıcı denetimi ise, mülkün adını değiştirmenizi tavsiye ederim, böylece devralınan üyeyi gizlemezsiniz.

+0

Haklısın, bu sadece bir kopya/yapıştır eseriydi. Bu durumda, "bu" özel bir denetimdir ve miras kalan FontSize özelliğine başvuruyorum. Herşeyin bittiğini görüyorum. Korkarım ki, aslında bağlarımı ortadan kaldıran bir şey yapıyorum ama bunu tanımlayamıyorum. – MojoFilter