用户控制数据绑定的最佳实践 - 如何实现这一目标?

时间:2010-07-28 06:29:46

标签: .net winforms data-binding ado.net user-controls

我有一个带有TextBoxes,Labels,...的用户控件。现在我想获得相同的数据绑定功能,就像我将控件直接放在窗体上一样。我尝试在用户控件中使用额外的绑定源和错误提供程序,并尝试将我的控件的属性作为属性提供。

没有任何效果。所以必须有一个解决方案来完成这项工作。怎么样?

1 个答案:

答案 0 :(得分:1)

我在https://github.com/edymtt/usercontrolwithdatabinding处实现了一个示例,以说明可能适用于您的问题的一些数据绑定方案。特别是我已经解决了两个场景:

  1. 实现UserControl编辑基本属性(字符串,整数,...);
  2. 实现UserControl以编辑复杂类型的属性(例如Address POCO);
  3. 实现UserControl以编辑基本属性

    在这种情况下,它足以暴露底层控件的相关属性(例如Text的{​​{1}}属性)并在此更改时引发相应的事件(继续示例,句柄) TextBox的{​​{1}}事件并提出新的TextChanged事件,请参阅“更改自定义控件的通知”部分中的this page on MSDN

    表单中的TextBox(你有绑定源)可以毫无问题地处理这种UserControl

    实现TextChanged以编辑复杂类型的属性

    这种情况并不比以前复杂得多:

    • 您需要在usercontrol中放置ErrorProviderUserControl来处理您需要的POCO;
    • 接下来,您需要公开一个属性来接收绑定对象并在运行时分配它。

    我希望样本足够清楚,以了解绑定的工作原理。