stock 类
/// <summary>
    /// 下载状态
    /// </summary>
    public enum Ds { 初始 = 0, 成功 = 1, 失败 = 2 }    /// <summary>
    /// 转换状态
    /// </summary>
    public enum Ts { 初始 = 0, 成功 = 1, 失败 = 2 }    /// <summary>
    /// 来源网站
    /// </summary>
    public enum SourceWebsite { 理想论坛, 海风股份论坛, 迈博汇金, 汗牛网, 渐飞数据, 人大经济论坛, 赢富阁, 正点财经, 讯嘉数据, 百思社区 }    /// <summary>
    /// 论坛表
    /// </summary>
    public class Stock
    {
        public Stock()
        {
            Tstatus = new Dictionary<string, Ts>();            Tstatus.Add("默认", Ts.初始);            Reports = new List<Report>() { new Report { Dstatus = Ds.初始 } };
        }        /// <summary>
        /// ID
        /// </summary>
        public SourceWebsite ID { get; set; }        /// <summary>
        /// 信息集合
        /// </summary>
        public List<Report> Reports { get; set; }        /// <summary>
        /// 转换状态集合
        /// </summary>
        public Dictionary<string, Ts> Tstatus { get; set; }    }    /// <summary>
    /// 信息集合
    /// </summary>
    public class Report
    {
        /// <summary>
        /// 研报标题
        /// </summary>
        public string Title { get; set; }        /// <summary>
        /// 下载网址
        /// </summary>
        public string Uri { get; set; }        /// <summary>
        /// 下载时间
        /// </summary>
        public DateTime DownloadTime { get; set; }        /// <summary>
        /// 下载状态
        /// </summary>
        public Ds Dstatus { get; set; }        /// <summary>
        /// 路径
        /// </summary>
        public string Path { get; set; }
    }代码 
       private List<Stock> test()
        {
            List<Stock> list = new List<Stock>();            stock.ID = SourceWebsite.百思社区;
            stock.Reports = new List<Report>() { new Report() { Title = "测试1", Dstatus = Ds.成功, DownloadTime = DateTime.Now, Path = "f", Uri = "www.baidu.com" } };
            stock.Tstatus.Add("测试1", Ts.成功);
            list.Add(stock);
  return list;
}
想问下 dataGridView如何绑定,直接绑定test()方法,不行啊
效果如下我的Reports没显示出来,Tstatus也显示的集合

解决方案 »

  1.   

    dataGridView可以绑定dataset,数组等,你那不是已经有数据了吗
      

  2.   

    用对象去点出你的属性stock.ID
    stock.Reports.?
    stock.Tstatus.?
      

  3.   

    我想把我的Reports内容也显示出来啊
      

  4.   

                foreach (var item in test())
                {
                    dataGridView1.DataSource = item.Reports;
                }这样 的话 Reports倒是可以显示出来,我id和Tstatus要如何显示呢
    我想实现 在如下图 的前后 把id 和Tstatus也显示出来
      

  5.   

    可以将list设为数据源的,你的test()返回值是List<T>,可以做为数据源。
      

  6.   

    stock.Reports.Title;
    stock.Reports.Uri;
    stock.Reports.DownLoadTime;
    stock.Reports.DStatus;
    stock.Reports.Path;

    stock.Tstatus.?这就可以显示Reports的信息了。
      

  7.   

    DataGridView的DataPropertyName为 stock.Reports.Title 这些就可以了
      

  8.   

    你绑定的数据源是个集合,集合里又包含一个集合
     你要把一个集合对象绑定到一个字段上,好像这样实现不了
    你可以把这个集合stock.Tstatus转为string型,自己重载tostring方法
     再绑定到 DataGridView
    要不就用Repeater控件,里面在嵌套一个Repeater,第一个绑定 test()
      第二个绑定stock.Tstatus
      

  9.   

    实体嵌套是有问题的在设计面选择DATAGRID右上角的设置 里面绑定
      

  10.   


    public class Report
        {
            /// <summary>
            /// 研报标题
            /// </summary>
            public string Title { get; set; }        /// <summary>
            /// 下载网址
            /// </summary>
            public string Uri { get; set; }        /// <summary>
            /// 下载时间
            /// </summary>
            public DateTime DownloadTime { get; set; }        /// <summary>
            /// 下载状态
            /// </summary>
            public Ds Dstatus { get; set; }        /// <summary>
            /// 路径
            /// </summary>
            public string Path { get; set; }        public override string ToString()
            {
                return string.Format("标题:{0} 链接:{1} 下载时间:{2} 下载状态:{3} 路径:{4}", Title, Uri, DownloadTime, Dstatus, Path);
            }
        }public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                var q = (from c in test()
                         select new
                         {
                             ID = c.ID,
                             Reports = string.Join(" ", from t in c.Reports
                                                        select t.ToString()),
                             Tstatus = string.Join(" ", from t in c.Tstatus
                                                        select string.Format("测试名:{0} 结果:{1}", t.Key, t.Value)),
                         }).ToList();
                dataGridView1.DataSource = q;
            }        private List<Stock> test()
            {
                List<Stock> list = new List<Stock>();            Stock stock = new Stock();
                stock.ID = SourceWebsite.百思社区;
                stock.Reports = new List<Report>() {
                    new Report() { Title = "测试1", Dstatus = Ds.成功, DownloadTime = DateTime.Now, Path = "f", Uri = "www.baidu.com" },
                    new Report() { Title = "测试1", Dstatus = Ds.成功, DownloadTime = DateTime.Now, Path = "f", Uri = "www.baidu.com" }
                };            stock.Tstatus.Add("测试1", Ts.成功);
                stock.Tstatus.Add("测试2", Ts.失败);            list.Add(stock);            return list;
            }
        }
    后续格式扩展,自己思考下