0

我正在使用实体并创建了一个表。

namespace TestExample {

 public class Blog
 {
  public int BlogId {get; set; }
  public String Title {get; set;}
  public String Description {get; set;}

  public virtual Blog Blogs {get; set;}
 }

 public class BloggingContext : DbContext
 {
    public DbSet<Blog> Blogs { get; set; }
 }

 class Program 
 {
  static void Main (string[] args) {
        var db = new BloggingContext()
        // Display all Blogs from the database
        var query = (from b in db.Blogs
                    orderby b.Title
                    select b).ToList();


        foreach (var item in query)
        {
            //
        }
 }
}

我将如何用整个表格填充列表框?当我尝试 Listbox.Datasource = query; 我得到奇怪的结果。除了遍历每个项目并打印出 item.Title、item.Description 等之外,还有其他方法吗?

编辑:它是一个 winforms 应用程序。

4

2 回答 2

2

尝试下面的代码行添加新项目..

var query = (from b in db.Blogs
                orderby b.Title
                select b.Title).ToList();

foreach (var item in query)
        {
            mylistbox.items.add(item );
        }
于 2013-11-06T06:10:05.643 回答
1

我不确定你在寻找什么 asp.net 应用程序、windows 窗体或 wpf。所以我给出了所有三个选项。对于 asp.net 应用程序,以下是它的代码。

listBox.DataSource=query;
listBox.DataTextField  = "Title";
listBox.DataValueField = "BlogId";
listBox.DataBind();

如果您使用的是 windows 窗体,则可以使用如下所示。

listBox.DataSource = query;
listBox.DisplayMember   = "Title";
listBox.DataBind();

有关更多信息,请参阅以下 Windows 表单链接 http://msdn.microsoft.com/en-us/library/w67sdsex(v=vs.90).aspx

对于 WPF - 请通过以下链接。

http://social.msdn.microsoft.com/Forums/vstudio/en-US/c9b7b7a5-d9c0-4c6c-afcc-9b382991fd8a/how-to-bind-a-generic-list-to-a-wpf-listview?论坛=wpf

http://dotprogramming.blogspot.in/2013/09/how-to-bind-listview-with-string-list.html

http://www.c-sharpcorner.com/UploadFile/raj1979/DataBinding10042007165025PM/DataBinding.aspx

希望对您有所帮助。您还可以按照上述答案中的建议通过 forloop 添加项目。

于 2013-11-06T06:24:41.180 回答