2010-08-11 4 views
2

BindingSource의 DataSource 속성을 IList <>으로 설정하려면 다음 오류 메시지와 같이 명시 적 캐스트가 필요합니까? 아니면 잘못된 것이 있습니까?바인딩 원본 데이터 원본을 일반 IList <> 오류로 설정하십시오.

interface IView 
    { 
     IList<OrderItems> BindingSource { get; set;} 
    } 

    public partial class Form1 : Form, IView 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private BindingSource _bindingSource; 
     public IList<OrderItems> BindingSource 
     { 
      get { return _bindingSource; } 
      set 
      { 
       _bindingSource.DataSource = value; 
       dataGridView1.DataSource = _bindingSource;     
      } 
     } 


    } 

OrderItems.cs

using System; 
using System.Collections.Generic; 

namespace Ordering.Data 
{ 
    /// <summary> 
    /// Order object for NHibernate mapped table 'Order'. 
    /// </summary> 
    [Serializable] 
    public class OrderItems 
    { 
     #region Member Variables 
     protected int _id; 
     protected Customers _customers; 
     protected string _ordername; 
     protected DateTime _orderdate; 
     protected DateTime? _shipdate; 
     protected string _shipvia; 
     protected string _shipname; 
     protected string _shipaddress; 
     protected string _shipcity; 
     protected string _shipregion; 
     protected string _shippostalcode; 
     protected string _shipcountry; 
     protected string _status; 
     protected DateTime? _lastupdate; 
     protected IList<Products> _products; 

     #endregion 
     #region Constructors 

     public OrderItems() {} 

     public OrderItems(Customers customers, string ordername, DateTime orderdate, DateTime? shipdate, string shipvia, string shipname, string shipaddress, string shipcity, string shipregion, string shippostalcode, string shipcountry, string status, DateTime? lastupdate) 
     { 
      this._customers= customers; 
      this._ordername= ordername; 
      this._orderdate= orderdate; 
      this._shipdate= shipdate; 
      this._shipvia= shipvia; 
      this._shipname= shipname; 
      this._shipaddress= shipaddress; 
      this._shipcity= shipcity; 
      this._shipregion= shipregion; 
      this._shippostalcode= shippostalcode; 
      this._shipcountry= shipcountry; 
      this._status= status; 
      this._lastupdate= lastupdate; 
     } 

     public OrderItems(Customers customers, string ordername, DateTime orderdate) 
     { 
      this._customers= customers; 
      this._ordername= ordername; 
      this._orderdate= orderdate; 
     } 

     #endregion 
     #region Public Properties 
     public virtual int Id 
     { 
      get { return _id; } 
      set { _id = value; } 
     } 
     public virtual Customers Customers 
     { 
      get { return _customers; } 
      set {_customers= value; } 
     } 
     public virtual string OrderName 
     { 
      get { return _ordername; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "OrderName cannot contain more than 255 characters"); 
       if (value != this._ordername){_ordername= value;}} 
     } 
     public virtual DateTime OrderDate 
     { 
      get { return _orderdate; } 
      set {if (value != this._orderdate){_orderdate= value;}} 
     } 
     public virtual DateTime? ShipDate 
     { 
      get { return _shipdate; } 
      set {if (value != this._shipdate){_shipdate= value;}} 
     } 
     public virtual string ShipVia 
     { 
      get { return _shipvia; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipVia cannot contain more than 255 characters"); 
       if (value != this._shipvia){_shipvia= value;}} 
     } 
     public virtual string ShipName 
     { 
      get { return _shipname; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipName cannot contain more than 255 characters"); 
       if (value != this._shipname){_shipname= value;}} 
     } 
     public virtual string ShipAddress 
     { 
      get { return _shipaddress; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipAddress cannot contain more than 255 characters"); 
       if (value != this._shipaddress){_shipaddress= value;}} 
     } 
     public virtual string ShipCity 
     { 
      get { return _shipcity; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipCity cannot contain more than 255 characters"); 
       if (value != this._shipcity){_shipcity= value;}} 
     } 
     public virtual string ShipRegion 
     { 
      get { return _shipregion; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipRegion cannot contain more than 255 characters"); 
       if (value != this._shipregion){_shipregion= value;}} 
     } 
     public virtual string ShipPostalcode 
     { 
      get { return _shippostalcode; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipPostalcode cannot contain more than 255 characters"); 
       if (value != this._shippostalcode){_shippostalcode= value;}} 
     } 
     public virtual string ShipCountry 
     { 
      get { return _shipcountry; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "ShipCountry cannot contain more than 255 characters"); 
       if (value != this._shipcountry){_shipcountry= value;}} 
     } 
     public virtual string Status 
     { 
      get { return _status; } 
      set { 
       if (value != null && value.Length > 255) 
        throw new ArgumentOutOfRangeException("value", value.ToString(), "Status cannot contain more than 255 characters"); 
       if (value != this._status){_status= value;}} 
     } 
     public virtual DateTime? LastUpdate 
     { 
      get { return _lastupdate; } 
      set {if (value != this._lastupdate){_lastupdate= value;}} 
     } 
     public virtual IList<Products> Products 
     { 
      get { return _products; } 
      set {_products= value; } 
     } 


     #endregion 

     #region Equals And HashCode Overrides 
     /// <summary> 
     /// local implementation of Equals based on unique value members 
     /// </summary> 
     public override bool Equals(object obj) 
     { 
      if(this == obj) return true; 
      if((obj == null) || (obj.GetType() != this.GetType())) return false; 
      OrderItems castObj = (OrderItems)obj; 
      return (castObj != null) && 
      this._id == castObj.Id; 
     } 
     /// <summary> 
     /// local implementation of GetHashCode based on unique value members 
     /// </summary> 
     public override int GetHashCode() 
     { 
      int hash = 57; 
      hash = 27 * hash * _id.GetHashCode(); 
      return hash; 
     } 
     #endregion 

    } 
} 

암시 'System.Collections.Generic.IList'에 유형 'System.Windows.Forms.BindingSource을'변환 할 수 없습니다. 명시 적 변환 (당신이 캐스트를 누락?) 존재

+0

가서 낮잠이나 휴식 시간, 당신은 바보 물건을 누락! :) – leppie

+0

우! 고마워 - 하루 종일 내 엉덩이를 차고있어! –

답변

3
return _bindingSource.DataSource as IList<OrderItems>; 
관련 문제