为什么BindingSource组件看不到继承的属性?

时间:2009-07-22 14:46:59

标签: .net winforms data-binding bindingsource

我已经定义了类:

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可见以定义绑定。

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

2 个答案:

答案 0 :(得分:0)

对此并不完全确定,但这里有:

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

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

答案 1 :(得分:0)

我认为,框架中存在导致描述问题的错误。这是相关的连接问题:

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