0

我正在使用一个没有源代码的 win forms 控件库。

我的应用程序是 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 的东西抽象出来,以便以后可以用另一个库替换它。

对实现我想要做的事情的正确方法有什么建议吗?

谢谢。

4

1 回答 1

0

我能想到的最好的事情是使属性内部化。如果您的包装器位于应用程序使用的库中,则它们不会知道您是否这样做。如果包装器与您的应用程序位于同一程序集中,则可能不是那么干净。

于 2011-05-31T17:50:29.013 回答