如何在.net中绑定一个可编程属性
本文关键字:一个 可编程 属性 net 绑定 | 更新日期: 2023-09-27 17:54:36
我有一个表单,它的编程属性叫做SelectedAccessGroups
:
[Bindable(true)]
public string SelectedAccessGroups
{
get { return "Selected Access Groups here"; }
}
我在表格上也有一个BindingSource
,它有一个名为EditableByAccessGroups
的字段。我想将我的SelectedAccessGroups
属性绑定到该字段。
我尝试在我的表单的构造函数中执行以下操作,但它不起作用:
this.DataBindings.Add(new System.Windows.Forms.Binding("SelectedAccessGroups",
this.CriteriaBindingSource, "EditableByAccessGroups"));
有办法做到这一点吗?
谢谢!
Update:当我试图运行我的程序时,我得到的错误是相当不可描述的,但是进一步研究它,我发现我得到的错误是因为我的属性是只读的。我给属性添加了一个空白设置器,现在绑定工作正常了。
你必须在你的类上实现INotifyPropertyChanged,这样绑定的项目就会知道什么时候有所不同。这里有一篇MSDN的文章,还有一些其他的文章可以帮助你实现这个接口。
http://msdn.microsoft.com/en-us/library/ms743695.aspx根据问题的更新和更改,要获得单向绑定,您可以使用使用其他以DataSourceUpdateMode作为参数的binding构造函数之一。
http://msdn.microsoft.com/en-us/library/system.windows.forms.binding.aspx http://msdn.microsoft.com/en-us/library/system.windows.forms.datasourceupdatemode.aspx与其添加空白设置器的繁琐操作,不如尝试使用Binding的重载构造函数,该构造函数接受DataSourceUpdateMode值并传递DataSourceUpdateMode . never。这将防止绑定尝试从控件更新数据源。