2009-07-22 3 views
1

I 정의 된 클래스는 : 나는 IChild 인스턴스에 컨트롤을 바인딩 할 때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;} 
} 

, 나는 ChildText 속성에 대해이 작업을 수행 할 수 있지만 ParentText 속성 수 있습니다. 자식 인스턴스에 바인딩하려고하면 두 속성이 모두 바인딩됩니다. 데이터 바인딩 메커니즘에 다른 인터페이스에서 상속 된 속성이 표시되지 않는 이유는 무엇입니까?

EDIT : SharePoint Newbie가 맞습니다. 데이터 바인딩은 코드로 직접 정의 할 때 작동합니다. 그러나 BindingSource 구성 요소를 사용하여 디자이너에서 데이터 바인딩을 정의하려고했습니다. 프로젝트에 객체 소스를 추가하고 IChild 인터페이스를 가리키면 바인딩을 정의하기 위해 ChildText 만 보입니다.

내 문제를 더 잘 반영하도록 질문 제목을 업데이트했습니다.

+0

정말 이니? 문제없이 바인딩해야합니다. 과거에 이것을 해 봤습니다. –

답변

0

하지 이것에 대해 완전히 확실하지만, 여기 간다 : 그 IParent, 부모에없는 존재하기 때문에

IChild 만 IParent에서 상속 때문에, ParentText의 구현 (즉 get 접근)을 볼 수 없습니다. 따라서 IChild에 바인딩하면 ParentText 속성이 상속되지 않습니다.

실제로 인터페이스에 바인딩하는 이유는 확실하지 않습니다. IChild와 바인딩하여 Child에 바인딩 할 수없는 것은 무엇입니까?

+0

IChild의 많은 구현이 있습니다. 내보기 (양식) 정확한 구현을 모르므로 인터페이스와 함께 작업해야합니다. – Przemaas

+0

Matthew, 동일한 논리를 ChildText 속성에 적용 할 수 있지만 ChildText는 데이터 바인딩에서 볼 수 있습니다. – Przemaas

관련 문제