WPF CheckBox TwoWay Binding ne fonctionne pas

j'ai

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

Et

 public bool Foo{ get; set; }

verification / Unchecking sets Foo, mais la configuration de Foo dans le code ne change pas l'état de la case à cocher. Tout Suggesitons?

12
demandé sur Ugur 2013-04-19 03:18:02

1 réponses

vous devez relancer L'événement PropertyChanged lorsque vous définissez Foo dans votre DataContext. Normalement, cela ressemblerait à quelque chose comme:

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

si vous appelez Foo = someNewvalue, L'événement PropertyChanged sera levé et votre UI devrait être mis à jour

17
répondu Andrew 2013-04-18 23:38:54