wpf twoway绑定并从代码隐藏更新

时间:2010-09-21 11:47:12

标签: wpf binding two-way-binding

我在XAML中使用ToggleButton这样定义:

<ToggleButton IsChecked="{Binding DateFilter, ElementName=myUserControl, Mode=TwoWay}"/>

和'DateFilter'定义如下:

public Boolean DateFilter { get; set; }

当我点击切换按钮时,'DateFilter'会相应更新。但是,如果我在代码中修改'DateFilter',则ToggleButton不会更新!
我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

您需要为INUifyConpertyChanged为myUserControl添加继承,并使用“DateFilter”属性名称在DateFilter setter事件PropertyChanged中发送。

答案 1 :(得分:0)

public MyClass : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged = delegate {};

    private Boolean _dateFilter;

    public Boolean DateFilter
    {
        get { return _dateFilter; }
        set
        {
            _dateFilter = value;
            PropertyChanged(this, new PropertyChangedEventArgs("DateFilter");
        }
    }
}

每当你更改_dateFilter时,基本上都会调用PropertyChanged,或者只是使用setter,你就会被排序。将事件处理程序设置为空委托可以避免空检查。