2010-08-04 21 views
5

Herkes Silverlight'ta WPF'de var olan UpdateTarget() yöntemi için bir geçici çözüm oluşturmanın bir yolunu önerebilir mi? DP'de var olan mevcut bağlamanın kaldırılması ve değeri manuel olarak ayarlamak benim için bir seçenek değildir. Teşekkürler.Silverlight UpdateTarget() BindingExpression için geçici çözüm

+0

UpdateTarget() gerekliliğinin nedeniniz nedir? Nedeni bağlı olarak farklı geçici çözümler olabilir. – Stephan

+0

XAML'imde bir bağım var ve varolan bir uygulamayı Silverlight'a taşıyoruz ve dosyaların arkasındaki aynı XML/kodu kullanıyoruz. Mevcut WPF koduna gelince, şu ifadeye sahibim: BindingExpression expression = someTextBox.GetBindingExpression (TextBox.TextProperty); expression.UpdateTarget(); Bu, varolan koddur ve bunun için SL'nin #if WPF yönergelerini kullanmaması SL için bir uzantı yöntemi yaratır ... Buradaki fikir, WPF'de BindingExpression.UpdateTarget() gibi davranan bir yönteme sahip olmaktır. –

cevap

7

Böyle bir şey deneyin. ImageBlobMember'i XAML kontrolünüzün x: Name/Name ile değiştirin ve Image.SourceProperty'yi kontrol tipine bağlı olarak uygun değerle değiştirin.

BindingExpression bindExp = 
ImageBlobMember.GetBindingExpression(System.Windows.Controls.Image.SourceProperty); 
Binding bind = bindExp.ParentBinding; 
ImageBlobMember.SetBinding(System.Windows.Controls.Image.SourceProperty, bind); 
+0

Sonunda böyle yaptım ama nulls için kontrol ettiğimden emin olmalıyım –

+0

Teşekkürler! Bir süredir arıyordum ve bu, Silverlight 5'de eksik olan 'BindingExpression.UpdateTarget()' yöntemini simüle etmek için işlevsel olarak yeterli olan tek seçenekdi. – Jaans

İlgili konular