我很抱歉,如果这是一个重复,但我搜索网,都没有找到答案的WinForms数据绑定到自定义属性会引发异常
我试图绑定控件的Enabled
(或ReadOnly
为TextBox
):
this.tbProj.DataBindings.Add(new Binding("Enabled", this, "CanEdit", false, DataSourceUpdateMode.OnPropertyChanged, false));
this.btnSave.DataBindings.Add(new Binding("Enabled", this, "Dirty", false, DataSourceUpdateMode.OnPropertyChanged, false));
以下属性:
public bool Dirty { get; set; }
private bool CanEdit
{
get { return this._CurrentRecord.CanEdit(); }
}
我得到System.ArgumentException: Cannot bind to the property or column CanEdit on the DataSource.
尝试时到ShowDialog()
的表格。
如果我将Enabled
或ReadOnly
绑定到Dirty
,则一切正常。我试过get { return true; }
甚至添加了一个setter:set { bool bummy=value; }
,同样的错误。我甚至将CanEdit
更改为一个自动执行的属性,与Dirty
(仅在get; set;
声明中)无关...
请帮忙。
感谢您的任何提示和建议。
任何理由物业'CanEdit'必须是'private'?你是否认为它是“公共”? – Rahul 2014-10-10 19:29:46
“Record”类具有执行相同操作的扩展方法,因此“private”是有意的。事实上,所有这些属性都在调用'_CurrentRecord'对象的扩展方法。感谢提示。 – nurchi 2014-10-10 20:01:51