我試圖綁定到一個WinForms控件的DataSource屬性在我的WPF應用程序,但我運氣不好......裝飾非DependencyObject的用一個DependencyProperty
Falafel.com給它一個鏡頭,但儘管它聲稱一個DependencyObject不需要執行綁定,這似乎是唯一的方法。
有沒有人做過這個?
我試圖綁定到一個WinForms控件的DataSource屬性在我的WPF應用程序,但我運氣不好......裝飾非DependencyObject的用一個DependencyProperty
Falafel.com給它一個鏡頭,但儘管它聲稱一個DependencyObject不需要執行綁定,這似乎是唯一的方法。
有沒有人做過這個?
答:對於不是從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
。我找到了一個很好的解決方案的問題here...它使用代理雖然管理結合...
感謝您的輸入!