【问题标题】:Populating a list with table data使用表数据填充列表
【发布时间】:2013-11-06 06:02:25
【问题描述】:

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

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 应用程序。

【问题讨论】:

  • winform 或 wpf。你需要澄清,因为它改变了很多
  • 如果您使用 wpf/silverlight,那么您必须使用 ObservalbeCollection 作为属性类型,然后在 xaml 文件中将属性绑定到控件。看看这个stackoverflow.com/questions/19625767/…
  • 它是一个 Winforms 应用程序

标签: c# .net entity-framework


【解决方案1】:

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

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

foreach (var item in query)
        {
            mylistbox.items.add(item );
        }

【讨论】:

  • 我仍然收到相同的消息,即 system.data.entity.dynamicproxies.Blog_45.... 而不是数据。
  • 我更新了答案。如果你在列表框中得到至少标题,试试这个?
  • 感谢修复!
  • 我很高兴它有帮助! :)
【解决方案2】:

我不确定您在寻找什么 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?forum=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 添加项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    相关资源
    最近更新 更多