0

我在 XAML 中这样定义了 ToggleButton:

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

和 'DateFilter' 定义如下:

public Boolean DateFilter { get; set; }

当我单击切换按钮时,“日期过滤器”会相应更新。但是,如果我在代码中修改“DateFilter”,ToggleButton 不会更新!
我怎样才能做到这一点?

4

2 回答 2

0

您需要为 myUserControl 添加从 INotifyPropertyChanged 的​​继承,并使用“DateFilter”属性名称发送 DateFilter 设置器事件 PropertyChanged。

于 2010-09-21T11:55:38.323 回答
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");
        }
    }
}

基本上,PropertyChanged只要您更改 _dateFilter 或仅使用 setter 就进行该调用,然后您将被排序。将事件处理程序设置为空委托可以避免空检查。

于 2010-09-21T11:58:09.867 回答