3

I want to Bind the Text Property of a TextBox to a Child of a of a Property of a ViewModel.

Here is my code:


foo.cs:

 public class foo() { public foo() { Bar = "Hello World"; } public string Bar { Get; private Set;} //Some functions } 

ViewModel.cs:

 public class ViewModel : INotifyPropertyChanged { public foo Property { Get; Set; } //some more properties public ViewModel() { } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } } 

Window.xaml.cs:

 public ViewModel MyViewModel { get; set; } public Window() { MyViewModel = new ViewModel(); this.DataContext = MyViewModel; MyViewModel.Property = new foo(); } 

Window.xaml:

 <!-- Some controls --> <TextBox Text="{Binding Path=Property.Bar}"></TextBox> 

I also tried this and this, but none of them worked for me.

1 Answer 1

4

You have implemented INotifyPropertyChanged on your ViewModel but you never call it when Property is changed

try:

public class ViewModel : INotifyPropertyChanged { private foo _property; public foo Property { get{ return _property; } set{ _property = value; OnPropertyChanged(); } } ................. 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.