我有一个带有TextBoxes,Labels,...的用户控件。现在我想获得相同的数据绑定功能,就像我将控件直接放在窗体上一样。我尝试在用户控件中使用额外的绑定源和错误提供程序,并尝试将我的控件的属性作为属性提供。
没有任何效果。所以必须有一个解决方案来完成这项工作。怎么样?
答案 0 :(得分:1)
我在https://github.com/edymtt/usercontrolwithdatabinding处实现了一个示例,以说明可能适用于您的问题的一些数据绑定方案。特别是我已经解决了两个场景:
UserControl
编辑基本属性(字符串,整数,...); UserControl
以编辑复杂类型的属性(例如Address
POCO); UserControl
以编辑基本属性在这种情况下,它足以暴露底层控件的相关属性(例如Text
的{{1}}属性)并在此更改时引发相应的事件(继续示例,句柄) TextBox
的{{1}}事件并提出新的TextChanged
事件,请参阅“更改自定义控件的通知”部分中的this page on MSDN。
表单中的TextBox
(你有绑定源)可以毫无问题地处理这种UserControl
TextChanged
以编辑复杂类型的属性这种情况并不比以前复杂得多:
ErrorProvider
和UserControl
来处理您需要的POCO; 我希望样本足够清楚,以了解绑定的工作原理。