我們目前正在將我們的產品從WinForms切換到WPF。目前我們正在使用我們應用程序所需的一些第三方WinForm控件。儘管我們計劃最終用WPF版本替換它們,但現在這是不可能的。我們已經嘗試在WindowsFormsHost控件的wpf窗口中託管它們,並且它似乎工作得很好。我們唯一的問題是如何將我們的數據從VM傳遞到這些控件。我們希望避免爲了適應這種控制而對VM進行任何代碼隱藏和更改。理想情況下,我們希望讓VM完全不知道用於顯示其數據的控件,以便當我們切換到WPF版本的這些控件時,我們只需要修改視圖。這就是爲什麼我們正在尋找一種將VM屬性綁定到XAML的託管WinForm控件的方法。如果這有幫助,我們可以肯定的是,從虛擬機到控件只有一種方式綁定,並且我們不介意綁定是否僅工作一次,沒有從虛擬機進行後續更新,因爲虛擬機的屬性我們綁定不會改變。也許有人有任何想法,我們如何能做到這一點?在XAML中綁定winform控件屬性
1
A
回答
2
不知道是否有更好的辦法,但這裏有一個想法:
包裝你的WinForm控件/ WindowsFormsHost控件到包裝控件(從Control繼承或使用用戶控件,什麼是最適合你)。
在此包裝上,您可以添加要綁定到VM的依賴項屬性。
在包裝器代碼中,可以添加需要的樣板以在包裝器依賴項屬性和winform屬性之間來回傳播更改。
這隱藏了地毯下的污垢,並暴露出一個很好的WPF外觀,您可以像平常一樣綁定,而無需更改虛擬機。
當控件逐步淘汰時,從您的項目中移除包裝,您可以直接將VM綁定到新的WPF替換控件。
相關問題
- 1. 將控件屬性綁定到XAML中的對象屬性
- 2. Winform:綁定自定義控件屬性綁定列表
- 3. XAML綁定屬性
- 4. 使用INotifyPropertyChanged將Winform控件屬性綁定到用戶控件上的屬性
- 5. IsEnable我的控件的屬性不綁定在xaml中
- 6. 在XAML中綁定XAML用戶控件
- 7. 僅在XAML中綁定XML屬性
- 8. 指定控件的屬性在XAML
- 9. XAML ComboBox綁定到屬性
- 10. XAML自定義控件 - 顏色屬性綁定
- 11. 通過綁定屬性獲取XAML控件?
- 12. XAML,C# - 綁定到用戶創建控件的屬性
- 13. XAML Itemscontrol綁定到控件之外的屬性
- 14. 在xaml中設置控件屬性
- 15. 綁定XAML能見度屬性Thread.CurrentPrincipal中
- 16. XAML:綁定DataTemplate中的屬性
- 17. 在XAML中綁定用戶控件
- 18. XAML,將Width和Height屬性綁定到其他控件的相同屬性
- 19. Winform自定義控件值沒有從綁定屬性中更新
- 20. WPF中控件的屬性綁定
- 21. 自定義控件綁定屬性
- 22. WPF - 從XAML中的StringFormat綁定屬性訪問屬性值
- 23. 綁定到XAML中屬性的值(也是屬性)值
- 24. 使用XAML綁定依賴項屬性
- 25. XAML綁定到ContentControl的UserControl的屬性
- 26. C#xaml綁定到別處的屬性
- 27. XAML綁定Rectange.Fill SolidColorBrush顏色屬性
- 28. 依賴屬性上的XAML綁定
- 29. Xaml通過綁定屬性到命令
- 30. C#XAML如何綁定源屬性
+1,儘管一些代碼示例會使這個更好的答案。 –