因为这个问题,我需要有人确认我所看到的,然后才能更改应用程序的域。问题是,当针对彼此继承的接口进行数据绑定时,您无法看到基本接口上的属性。
我正在开发一个使用数据绑定的WinForms应用程序。这是在.net3.5中,不,我不能使用wpf。
无论如何,我有一个这样的设置。
public interface IClassOne
{
string Prop1 { get; set; }
}
public interface IClassTwo : IClassOne
{
string Prop2 { get; set; }
}
public abstract class ClassOne : IClassOne
{
public string Prop1 { get; set; }
}
public class ClassTwo : ClassOne, IClassTwo
{
public string Prop2 { get; set; }
}
基类将包含公共属性和逻辑。基础接口将在其上具有这些公共属性,因此必须在每个具体实现上实现它们。
如果我将数据绑定到上面的类结构,我将绑定到iclasstwo。问题是当我将数据绑定到iclasstwo时,在WinForms的任何设计器操作中都看不到prop1。即使我绕过了这个限制,得到了一个绑定到prop1的控件,它也不起作用。
但是,如果我绑定两个Class2,那么数据绑定就可以工作了。
我不想处理具体的类,因为这会使使用模拟和测试变得过于困难。我也不想把所有东西都放在iclasstwo上,因为当我进行另一个具体的实现时,必须重复代码。
我需要知道的是,如果这真的不起作用。如果你知道原因,那就是奖金。
谢谢你
托尼