我正在尝试在我的WPF应用程序中绑定到WinForms控件的DataSource属性,但我没有太多运气......
Falafel.com给了它一个机会,但是虽然它声称不需要DependencyObject来执行绑定,但这似乎是唯一的方法。
以前有人这样做过吗?
答案 0 :(得分:1)
一个。对于非DependencyObject
派生的对象,您无权访问SetBinding()
或ClearBinding()
方法。相反,您可以调用静态方法BindingOperations.SetBinding()
和BindingOperations.ClearBinding()
。
这是实际绑定源和目标,可以使用静态方法从任何对象完成。
B中。现在关于绑定中涉及的源和目标,有一些约束,你可以read here并总结为:
“绑定的目标可以是从DependencyProperty派生的任何可访问属性或元素 - 示例是TextBox控件的Text属性。绑定的源可以是任何公共属性,包括其他控件的属性,公共语言运行时(CLR)对象,XAML元素,ADO.NET数据集,XML片段等。“
反过来DependencyProperty
只能在DependencyObject
中存在(如果我没有错)。所以目标需要存在DependencyObject
,而不是源,而不是创建绑定的对象。
这不完全正确,您也可以使用非DO的目标,查看this page中的代码。
OneWayToSource
类型的绑定。在
这种情况下目标不是一个
DependencyObject
。