编写WPF WinForms控件包装器

时间:2011-05-31 17:19:21

标签: c# wpf xaml windowsformshost

我使用的是win表单控件库,我没有源代码。

我的应用程序是c#WPF / XAML等。所以,我正在为WinForms控件编写包装器。除了一些小的不方便的问题,这一切都很顺利。直到...

我有两个Winforms表单控件

public class WFC_A
{
}

public class WFC_B
{
    public WFC_A WFC_A_Property { get; set; }
}

和两个WPF控件

public class WPF_A
{
     private WFC_A wfca;
}

public class WPF_B
{
     private WFC_B wfcb;
     public static readonly DependencyProperty WPF_A_Property =
            DependencyProperty.Register("WPF_A_Property", typeof(WPF_A),
            typeof(WPF_B), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnWPFAPropertyChanged)));

}

...

问题是当依赖属性更改时我想要引用WFC_A并将其另存为

wfcb.WFC_A_Property = WPF_A.wfca

1)对于c ++朋友类来说这似乎是一个非常好的例子,但这在c#中是不可用的。 2)这些都是非常大的包装类,我真的不想嵌套它们。 3)我可以将内部wfc属性公开,但我试图将所有Winforms内容抽象出来,以便以后可以用其他库替换。

是否有正确的方法来实现我想要做的事情?

感谢。

1 个答案:

答案 0 :(得分:0)

我能想到的最好的事情是将财产置于内部。如果您的包装器位于应用程序使用的库中,那么它们就不会有任何线索。如果包装器与您的应用程序位于同一个程序集中,那可能不是那么干净。