【问题标题】:How to display data from database to ListView in WPF C#如何在 WPF C# 中将数据从数据库显示到 ListView
【发布时间】:2014-11-30 20:13:27
【问题描述】:

我正在尝试在我的 WPF C# 应用程序中将数据从我的实体框架数据库显示到我的 ListView。

我使用 WCF 应用程序作为我的主机,我将我的方法用于显示数据、添加数据等,我将 WPF 应用程序作为我的客户端,我使用代码将数据从数据库显示到我的 ListView .

这是我的代码

ServiceReference1.ImojWCFServiceClient client = new ServiceReference1.ImojWCFServiceClient();
listView1.Items.Clear();
var userList = client.getUsers();
foreach (var user in userList)
{
   ListViewItem listOfUsers;
   string[] list = new string[3];
   list[0] = user.UserID.ToString();
   list[1] = user.Name;
   list[2] = user.LastName;
   listOfUsers = new ListViewItem(list);
   listView1.Items.Add(listOfUsers);
}

这是我得到的错误

有人可以帮我修复这段代码吗?

感谢您的帮助!

【问题讨论】:

    标签: c# wpf entity-framework listview service-reference


    【解决方案1】:

    如果您的 getUsers 方法返回一个列表、数组或类似的,您可以简单地将 ListView 的 ItemsSource 设置为 userList。例如:

    ServiceReference1.ImojWCFServiceClient client = new ServiceReference1.ImojWCFServiceClient();
    listView1.Items.Clear();
    var userList = client.getUsers();
    listView1.ItemsSource = userList;
    

    如果这不起作用,请在设置 ItemsSource 之前将 userList 转换为 ObservableCollection

    您的 Xaml 可能如下所示...

    <ListView>
        <ListView.View>
            <GridView>
                <GridViewColumn Header="ID" DisplayMemberBinding="{Binding UserID}"/>
                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
                <GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}"/>
            </GridView>
        </ListView.View>
    </ListView>
    

    【讨论】:

      【解决方案2】:

      ListViewItem 没有带一个参数的构造函数。所以listOfUsers = new ListViewItem(list); 是行不通的。

      尝试一种方法like this

      var items = new List<User>();
      items.Add(new User() { Name = "John Doe", Age = 42 });
      items.Add(new User() { Name = "Jane Doe", Age = 39 });
      items.Add(new User() { Name = "Sammy Doe", Age = 13 });
      myListView.ItemsSource = items;
      

      【讨论】:

      • 这只是一个例子。您必须替换自己的用例。这不是复制/粘贴代码。
      • 其实就是从这里复制粘贴代码:stackoverflow.com/questions/25862244/sorting-data-in-listview
      • @startoftext:这不是我所说的复制/粘贴代码的意思。通过复制/粘贴代码,我的意思是尝试通过从 Internet 复制/粘贴代码 sn-ps 来拼凑一个程序。 真正的程序员实际上会编写满足他们特定需求的代码!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      相关资源
      最近更新 更多