2013-04-18 14 views
10

mamWPF CheckBox TwoWay nie wiąże pracy

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

And

public bool Foo{ get; set; } 

zaznaczenie/odznaczenie ustawia Foo, ale ustawienie Foo w kodzie nie zmienia stanu wyboru. Wszelkie sugestie?

+0

nie wiem dlaczego zszedł przydatne. Miałem to samo pytanie i to rozwiązało. przegłosowane dla Ciebie. –

Odpowiedz

14

Musisz podnieść zdarzenie PropertyChanged po ustawieniu Foo w swoim DataContext. Normalnie byłoby to wyglądać mniej więcej tak:

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)); 
      } 
     } 
    } 

Jeśli zadzwonisz Foo = someNewvalue, zdarzenie PropertyChanged zostaną podniesione a UI powinny być aktualizowane

Powiązane problemy