2013-08-06 59 views
3

我想将TextBox的Text属性绑定到ViewModel属性的子项。将控件属性绑定到窗口ViewModel类的属性

这里是我的代码:


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> 

我也试过 thisthis,但他们没有为我工作。

回答

5

您已经实现INotifyPropertyChangedViewModel但你永远不把它当Property改变

尝试:

public class ViewModel : INotifyPropertyChanged 
{ 
    private foo _property; 
    public foo Property 
    { 
    get{ return _property; } 
    set{ _property = value; OnPropertyChanged(); } 
    } 

    ................. 
相关问题