我使用的是一个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的内容抽象出来,以便稍后用另一个库替换它。
对于实现我想要做的事情的正确方式,有什么建议吗?
谢谢。
我能想到的最好的事情就是使属性内部化。如果你的包装器在应用程序使用的库中,他们不会知道你做了什么。如果包装器和您的应用程序在同一个程序集中,那么可能就不那么干净了。