绑定布尔';对象不为空';到Windows窗体中控件中的Enabled属性

本文关键字:属性 窗体 控件 Windows Enabled 对象 布尔 绑定 | 更新日期: 2023-09-27 18:21:18

我有一个bool变量CanSave和一个名为Selected的对象。有时Selected是null,所以当这种情况发生时,我需要一些文本框来禁用。这是我的代码:

    private MyObject _selected;
    public MyObject Selected
    {
        get { return _selected; }
        set { 
            if (_selected != value) 
            { 
                _selected = value;
                CanSave = Selected != null;
                OnPropertyChanged("Selected");
            } 
        }
    }
    private bool canSave;
    public bool CanSave
    {
        get { return canSave; }
        set { if (canSave != value)
        {
            canSave = value;
            OnPropertyChanged("CanSave");
        } }
    }

我尝试了很多方法,我甚至绑定到标签,标签确实会对属性更改做出响应。

        txt_descripcion.DataBindings.Add(new Binding("Enabled", this, "CanSave")); //this doesn't work
        label8.DataBindings.Add(new Binding("Text", this, "CanSave")); //this works

任何导游都会很棒,提前谢谢!

绑定布尔';对象不为空';到Windows窗体中控件中的Enabled属性

正如@Igby Largeman所说,我阅读了相关的代码,思考了他是如何实际实现的,并在代码中找到了清除控件中所有绑定的地方。我已经好几个星期没有使用这个代码了,所以我忘记了发生了什么,谢谢Igby。