c# - 如何绑定(bind)到 .NET 中的编程属性?

标签 c# .net winforms binding

我有一个带有名为 SelectedAccessGroups 的编程属性的表单:

[Bindable(true)]
public string SelectedAccessGroups
{
    get { return "Selected Access Groups here"; }
}

我的表单上还有一个 BindingSource,其中有一个名为 EditableByAccessGroups 的字段。我想将我的 SelectedAccessGroups 属性绑定(bind)到该字段。

我在表单的构造函数中尝试了以下操作,但它不起作用:

this.DataBindings.Add(new System.Windows.Forms.Binding("SelectedAccessGroups",
  this.CriteriaBindingSource, "EditableByAccessGroups"));

有办法实现这一点吗?

谢谢!

更新:我在尝试运行程序时遇到的错误非常难以描述,但进一步研究后,我发现出现错误是因为我的属性是只读的。我向该属性添加了一个空白 setter ,现在绑定(bind)工作正常。

最佳答案

您必须在您的类上实现 INotifyPropertyChanged,以便绑定(bind)项能够知道何时出现不同情况。这是一篇 msdn 文章,还有其他几篇文章也有助于实现此接口(interface)。

http://msdn.microsoft.com/en-us/library/ms743695.aspx

关于c# - 如何绑定(bind)到 .NET 中的编程属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5887798/

相关文章:

c# - 调整图像的亮度对比度和 Gamma

c# - 绑定(bind)到字典的 DataGridView

c# - 以文本框输入作为过滤条件的 DropDownList

c# - 我们可以用 c 形式写那个函数吗

c# - 无法安装 Microsoft Power Bi Postgresql 连接器

.net - Linq:获取DataContext中所有表的列表

winforms - 避免处理系统定义的 Pen 和 Brush 实例

c# - 更改最小化、关闭和最大化窗口的图标

c# - 在重新安装和驱动器更改期间保持不变的持久系统/处理器 ID (C#)

c# - 为什么将类移动到 Visual Studio 中的新文件夹中会造成破坏?