我有一个名为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"));
有没有办法实现这个目标?
谢谢!
更新:我在尝试运行程序时遇到的错误非常不合适,但是进一步研究,我发现我收到了错误,因为我的属性是只读的。我在属性中添加了一个空白的setter,现在绑定工作正常。
答案 0 :(得分:2)
你必须在你的类上实现INotifyPropertyChanged,这样绑定的项目就会知道什么时候有什么不同。这是一篇msdn文章,其他几篇文章也有助于实现这个界面。
答案 1 :(得分:1)
根据您对问题的更新和更改,要获得单向绑定,您可以使用其中一个将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
答案 2 :(得分:0)
尝试使用the overloaded constructor of Binding that takes a DataSourceUpdateMode value并传递DatasourceUpdateMode.Never,而不是添加空白二传手。这将阻止绑定尝试从控件更新数据源。