15

私は持っている

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

 public bool Foo{ get; set; }

チェック/チェック解除はを設定しますが、コードFooで設定Fooしてもチェックボックスの状態は変更されません。提案はありますか?

4

2 に答える 2

21

PropertyChangedで Foo を設定するときにイベントを発生させる必要がありますDataContext。通常、次のようになります。

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 が更新されます。

于 2013-04-18T23:33:08.830 に答える