2010-08-04 13 views
5

Czy ktoś może zaproponować sposób utworzenia w Silverlight obejścia metody UpdateTarget() istniejącej w WPF? Usunięcie istniejącego powiązania istniejącego w DP i ręczne ustawienie wartości nie jest dla mnie opcją. DziękiObejście Silverlight UpdateTarget() dla BindingExpression

+0

Jaki jest twój powód potrzeby UpdateTarget()? W zależności od powodu mogą istnieć różne obejścia. – Stephan

+0

Mam powiązanie w moim XAML i przenosimy istniejącą aplikację do Silverlight i używamy tego samego kodu XML/kodu za plikami. Jeśli chodzi o istniejący kod WPF, mam następujące wyrażenie: Wyrażenie BindingExpression = someTextBox.GetBindingExpression (TextBox.TextProperty); expression.UpdateTarget(); To jest istniejący kod, a ja utworzyłbym metodę rozszerzenia, ponieważ SL nie stosuje dyrektyw #if WPF ... Chodzi o to, aby w WPF metoda zachowywała się jak BindingExpression.UpdateTarget(). –

Odpowiedz

7

Spróbuj czegoś takiego. Zastąp element ImageBlobMember elementem X: nazwa/nazwa formantu XAML i zastąp właściwość Image.SourceProperty w zależności od typu formantu.

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

Tak to zrobiłem na końcu, ale musiałem się upewnić, że sprawdzałem wartości null. –

+0

Dzięki! Szukałem przez chwilę i była to jedyna opcja, która była funkcjonalnie wystarczająca do symulacji brakującej metody 'BindingExpression.UpdateTarget()' w Silverlight 5. – Jaans

Powiązane problemy