質問

私は結合IListをGridView.IMyInterfaceのように見え

public interface IMyInterface: IHasTotalHours, IHasLines
{
    DateTime GoalStartDate { get; set; }
    DateTime GoalEndDate { get; set; }
}

私はbindのインスタンスは、グリッドのようになります:

IList<IMyInterface> instance= GetMyData();

myGrid.DataSource = instance;
myGrid.DataBind();

が結合することは、グリッドのメンバーのグリッドに直接メIMyInterface:GoalStartDateとGoalEndDate.

この理由は何でしょうか?どのようにグリッド表示のメンバーのその他のインタフェースで受け継?

更新 継承された界面の定義でのコミュニケーションのまっていただいた皆様ありがとう

public interface IHasTotalHours
{
    string Description { get; set; }
    int Hours{ get; set; }
}
public interface IHasLines
{
    double TotalLines { get; set; }
    double LinesPerHour { get; set; }
}

あるクラスを実装するIMyInterface:

public class MyClass : IMyInterface
{
    public string Description { get; set; }
    public int Hours { get; set; }
    public double TotalLines { get; set; }
    public double LinesPerHour { get; set; }
    public DateTime GoalStartDate { get; set; }
    public DateTime GoalEndDate { get; set; }

}

これらはキャストとしてIMyInterface、返されたリストをしているところに結合すGridView.

役に立ちましたか?

解決

データ行きの制御は使わない反射がTypeDescriptorの特性からデータソースです。の TypeDescriptor.GetProperties 方法は、以下の

性のためのコンポーネント と異なる特性のクラス このサイトでの追加と削除 物件の場合にコンポーネントを探.

どうやら、デフォルトの実装だけが返されます。直性またはインターフェースを継承します。

幸運にもこの機構を提供できる TypeConverter クラスとカスタムプロパティ情報の実装です。をご参照下さい挨拶のTypeConverter文書の実施のための物件。

のGetProperties実装のカスタムTypeConverterクラスでTypeDescriptor.GetProperties(タイプ)のインターフェースすべて継承したインタフェースただし、あなたの書汎用TypeConverterうすべてを継承した特性を反映である。

しを添付するこのカスタムTypeConverterへのインターフェースのTypeConverterAttributeの属性。

そのような魔法のデータソース内のすべての物件です。;-)

他のヒント

でのインタフェースは、契約の方と交流するオブジェクトはその特定の契約になります。のその他のインタフェースを想定できなことはできな活用することで、キャストします。

なんとなく結合するリストのTうに開発を維持-管理を知らないその他のインタフェース.の開発を維持-管理がなくなるわけではありません使用反射どその他のクラス(やインターフェイスが継承しています。唯一のオブジェクトのプロパティされる方は是非ご参加くださいをご利用の開発を維持-管理の特性によって明らかにされた一連のTインタフェース。

必要なものを結合するリストをご希望の場合は開発を維持-管理へのアクセスがすべての物件です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top