2013-04-18 72 views
10

WPF複選框雙向綁定工作不

<DataGridCheckBoxColumn 
    Binding="{Binding Path=Foo, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
/> 

而且

public bool Foo{ get; set; } 

選中/取消選中設置Foo,但在代碼中設置Foo不改變複選框狀態。任何建議?

+0

不知道爲什麼你得到了下來投了反對票。我有同樣的問題,這解決了它。 upvoted爲您。 –

回答

14

當您在DataContext中設置Foo時,需要引發PropertyChanged事件。通常情況下,它看起來是這樣的:

public class ViewModel : INotifyPropertyChanged 
    { 
     private bool _foo; 

     public bool Foo 
     { 
      get { return _foo; } 
      set 
      { 
       _foo = value; 
       OnPropertyChanged("Foo"); 
      } 
     } 

     public event PropertyChangedEventHandler PropertyChanged; 

     protected void OnPropertyChanged(string propertyName) 
     { 
      var propertyChanged = PropertyChanged; 
      if (propertyChanged != null) 
      { 
       propertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
      } 
     } 
    } 

如果你調用foo = someNewvalue,PropertyChanged事件將提高你​​的UI應該更新