我们目前正在将我们的产品从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,尽管一些代码示例会使这个更好的答案。 –