wpf双向绑定和从代码隐藏更新

发布于 2024-09-24 15:11:44 字数 347 浏览 6 评论 0原文

我在 XAML 中定义了这样的 ToggleButton:

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

和这样定义的“DateFilter”:

public Boolean DateFilter { get; set; }

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

I've ToggleButton defined like this in XAML:

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

and 'DateFilter' defined like this:

public Boolean DateFilter { get; set; }

When I click the toggle-button, 'DateFilter' updates accordingly. BUT, if I modify 'DateFilter' in code, the ToggleButton doesn't update!
How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

三生一梦 2024-10-01 15:11:44
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,然后您就会被排序。将事件处理程序设置为空委托可以让您避免空检查。

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

Basically make that PropertyChanged call whenever you change the _dateFilter, or just use the setter, and you'll be sorted. Setting the event handler to an empty delegate allows you to avoid null checks.

若言繁花未落 2024-10-01 15:11:44

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

You need to add inheritance from INotifyPropertyChanged for myUserControl and send in DateFilter setter event PropertyChanged with "DateFilter" property name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文