繁体   English   中英

在XAML中绑定Winform控件属性

[英]Binding winform control property in XAML

我们目前正在将产品从WinForms切换到WPF。 目前,我们正在使用应用程序所需的一些第三方WinForm控件。 即使我们计划最终将其替换为WPF版本,但目前尚不可能。 我们已经尝试将它们托管在WindowsFormsHost控件内的wpf窗口中,并且看起来工作正常。 我们唯一的问题是如何将数据从VM传递到这些控件。 我们希望避免为了适应此控件而对VM进行任何代码隐藏和更改。 理想情况下,我们希望使VM完全不了解用于显示其数据的控件,因此当我们将这些控件更改为WPF版本时,只需要修改视图即可。 这就是为什么我们正在寻找一种将VM属性从XAML绑定到托管WinForm控件的方法。 如果这有帮助,我们当然可以忍受这样一个事实,即从VM到控件的绑定只有一种方式,并且我们不介意绑定只工作一次,而无需VM的后续更新,因为VM属性被绑定不变。 也许有人对如何实现这一目标有任何想法?

不知道是否有更好的方法,但这是一个主意:

将WinForm控件/ WindowsFormsHost控件包装到包装程序控件中(从Control继承或使用UserControl,最适合您的方法)。

在此包装器上,您可以添加要绑定到VM的依赖项属性。

在包装器代码中,您可以添加在包装器依赖项属性和winform属性之间来回传播更改所需的样板。

这样可以将地毯上的污垢隐藏起来,并露出漂亮的WPF外墙,您可以照常绑定到它,而无需更改VM。

逐步淘汰该控件后,请从项目中删除包装器,然后可以将VM直接绑定到新的WPF替换控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM