1

我已经定义了类:

public class Parent : IParent
{
    public string ParentText
    {
        get { return "ParentText"; }
    }
}

public interface IParent
{
    string ParentText { get;}
}

public class Child : Parent, IChild
{
    public string ChildText
    {
        get { return "ChildText"; }
    }
}

public interface IChild : IParent
{
    string ChildText { get;}
}

当我尝试将控件绑定到 IChild 实例时,我可以对 ChildText 属性执行此操作,但不能对 ParentText 属性执行此操作。如果我尝试绑定到 Child 实例,这两个属性都是可绑定的。为什么数据绑定机制看不到从其他接口继承的属性?

编辑:SharePoint 新手是对的:数据绑定在代码中手动定义时起作用。但是,我尝试使用 BindingSource 组件在设计器中定义数据绑定。当您将对象源添加到项目并将其指向 IChild 接口时,只有 ChildText 可见以定义绑定。

我更新了问题的标题以更好地反映我的问题。

4

2 回答 2

0

不完全确定这一点,但这里有:

因为 IChild 只从 IParent 继承,所以它看不到 ParentText 的实现(即 get 访问器),因为它存在于 Parent,而不是 IParent。因此,绑定到 IChild 不会继承 ParentText 属性。

事实上,我不确定你为什么要绑定到一个接口。您可以完成哪些无法绑定到 Child 的绑定到 IChild 的操作?

于 2009-07-22T14:57:15.780 回答
0

我认为,框架中有一个错误会导致所描述的问题。这是相关的连接问题:

https://connect.microsoft.com/VisualStudio/feedback/details/431273/interface-inheritance-bug

于 2010-06-18T07:51:09.487 回答