WPF - pierwsza aplikacja - text + Bindowanie

0

Zaczynam dopiero przygodę z WPF, mam oto taki fragment kodu:

<TextBox x:Name="textBox"  Grid.Column="1" Grid.Row ="3" Text="{Binding Address}" Margin="0,5,0,-5" HorizontalAlignment="Left" Width="119" IsEnabled="False"> </TextBox>

W jaki sposób mogę zrobić tak by w textBoxie "textBox" obok zbindowanego adresu wyświetlał się dowolny tekst? Na przykład "Adres to" i dopiero zbindowana wartość?

0

Obok tego możesz po prostu dać jakiś textblock albo we właściwości Address dać po prostu coś takiego:

Address {get{ return $"Adres to: {address}" } {set ... }} ;)
0

Możesz to osiągnąć używając properta StringFormat:

<TextBox x:Name="textBox"  Grid.Column="1" Grid.Row ="3" Text="{Binding Address, StringFormat='Adres to: {0} ' }" Margin="0,5,0,-5" HorizontalAlignment="Left" Width="119" IsEnabled="False"> </TextBox>
0

A mam jeszcze jedno pytanie - Wykorzystałem gotowy kod na GitHub https://github.com/wpitek/mvvvm-tutorial/tree/MvvmPattern

Załóżmy , że w MainWindow.xaml dodałem jakiegos textBoxa , dajmy na to textBoxXY. Chicałbym w klasie MainWindowViewModel w metodzie SayHiExcute zamiast wypisać

  MessageBox.Show(string.Format("Hi {0} {1}!", _person.FirstName, _person.LastName));

wypiasć w texcie textBoxaXY "My First name is: " + _person.FirstName + " " + _person.LastName.

Kiedy tworzę instancję MainWindow i odwołuje się do tego textBoxa otrzymuję błąd - tak jakby obiekt był pusty. Możecie pokazać jak mogę objeść ten problem? Może moje pytania są trywialne, ale dopiero zacząłem przygodę z WPF i do tej pory korzystałem z Javy, a w C# jedynie z aplikacji konsolowych. Z góry dzięki :)
1

Pytania może i są trywialne, ale przede wszystkim opis trochę chaotyczny. Żeby zmienić zawartość kontrolki w widoku, musisz zmienić wartość właściwości, z której ta kontrolka korzysta. Czyli dodajesz właściwość np. FullName i wewnątrz tej metody przypisujesz FullName = "My First name is: " + _person.FirstName + " " + _person.LastName. Oczywiście, ta właściwość musi mieć w środku OnPropertyChanged. Wtedy w widoku robisz <TextBox Text="{Binding FullName}" /> i powinno działać.

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