我已经定义了类:
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可见以定义绑定。
我更新了问题标题以更好地反映我的问题。
答案 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