2009-07-22 20 views
1

私は、クラス定義されている:私はIChildインスタンスにコントロールをバインドしようとすると、私はChildTextプロパティのではなく、ParentTextプロパティのためにこれを行うことができます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;} 
} 

を。子インスタンスにバインドしようとすると、両方のプロパティがバインド可能です。 データバインディングメカニズムが他のインターフェイスから継承したプロパティを表示しないのはなぜですか?

EDIT:SharePoint Newbieが正しい:データバインディングはコードで手で定義すると機能します。しかし、BindingSourceコンポーネントを使用してデザイナでデータバインディングを定義しようとしました。プロジェクトにオブジェクトソースを追加し、それをIChildインターフェイスに向けると、バインディングを定義するためにChildTextだけが表示されます。

私の問題をよりよく反映するように質問のタイトルが更新されました。

+0

本当ですか?それは問題なくバインドする必要があります。これを過去にしたことがあります。 –

答えて

0

全くこのことについて確認してください、しかし、ここではないが行く:

をIChildのみIParentから継承するのでそれは親ではなく、IParentに存在するため、それは、ParentTextの実装(つまりgetアクセサを)見ることができません。したがって、IChildへのバインディングはParentTextプロパティを継承しません。

実際、なぜあなたはインターフェイスにバインドするのかはわかりません。チャイルドにバインドできないIChildへのバインディングは何ができますか?

+0

私はIChildの多くの実装をしています。私の見解(フォーム)は正確な実装を知らないので、私はインターフェイスで作業する必要があります。 – Przemaas

+0

Matthew、同じロジックをChildTextプロパティに適用できますが、ChildTextはデータバインディングで表示されます – Przemaas

関連する問題