WPF - wybranie w ComboBox i brak bindowania dla TextBlock

0

Cześć, chciałbym się zapytać o rozwiązanie następującego problemu:
Mam kontrolkę ComboBox która służy mi do wybrania pewnej wartości (z bazy danych) oraz TextBlock - który zostaję wypełniony po wybraniu pewnej wartości w ww. kontrolce ComboBox.
Po wybraniu wartości w ComboBox przypisywana zostaje wartość do TextBlock'a (za pomocą zdarzenia SelectionChanged). Niestety bindowanie nie działa wtedy dla tego TextBlocka, pomimo iż ustawiam właściwość Binding UpdateSourceTrigger="PropertyChanged". W przypadku gdy był to TextBox zamiast TextBlocka bindowanie działało.

1

zapewne w zdarzeniu nadpisujesz własność textblocka w której jest bindowanie, zwykłą wartością tekstową, ale bez kodu ciężko wywróżyć

nie możesz jednocześnie bindować i wpisywać tam dane ręcznie
jeśli chcesz to zrób bindowanie jednostronne to source z comboboxa do tej samej wartości do której zbindujesz textblock; żadne zdarzenie właściwie tu nie jest potrzebne

1

Hallo Pawlak 007,

Twoj binding powinien dzialac zarowno dla TextBox-a jak i dla TextBlock. Nie ma zadnych przeciwskazan, zebys przekazywal wartosci z ComboBox, jak i sam je wpisywal.
Zupelnie normalna funkcja np: uzytkownik wybiera numer zamowienia z listy/combo/wlasnej kontrolki lub tez (jesli zna ten numer) sam go wpisuje...
Musisz tylko odpowiednio zaimplementowac Properties. Przekaz wartosc z SelectionChanged do nowej .net properties, tam wywolaj RaisePropertyChanged(Prism) albo twoje INotifypropertyChanged dla property dla TextBlock.
Teoretycznie mozesz tez w twojej implementacji SelectionChanged zmienic wartosc property TextBox-a. Tak czy siak dobrze by bylo samemmu zaimplementowac dla twojego TextBox DP i Twoja metode textBoxpropertychanged.

 
public string TextBoxText
{
get { return (string) GetValue( TextboxTextProperty); }
set  { SetValue( TextboxTextProperty,value ); }
}
      public static readonly DependencyProperty TextboxTextProperty = DependencyProperty.Register( "TextboxText", typeof( string ), typeof( EinzelwertSelektion ), new FrameworkPropertyMetadata( textboxTextPropertyChanged ) );

     private static void textboxTextPropertyChanged( DependencyObject sender, DependencyPropertyChangedEventArgs e )
  { .. tTwoja wersja zdarzen ;).... }

miro

0

Haha, przeprowadzałem testy wcześniej i zapomniałem że za komentowałem OnPropertyChanged :D Ale wstyd :p Dzięki za odpowiedzi

1 użytkowników online, w tym zalogowanych: 0, gości: 1