How to display data from database to ListView in WPF C#

给你一囗甜甜゛ 提交于 2020-01-14 05:54:26

问题


I'm trying to display data from my Entitity Framework database to my ListView in my WPF C# application.

I'm using WCF app as my host, where I keep my methods for displaying data, adding data, etc., and I have WPF app as my client, where I use the code to display data from database to my ListView.

This is my code

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);
}

This is the error that I get

Can somebody help me fix this code?

Any help is appreciated!


回答1:


If your getUsers method returns a list, array, or similar, you could simply set the ItemsSource of the ListView to userList. For example:

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

If that doesn't work, convert userList to an ObservableCollection before setting the ItemsSource

Your Xaml might look like this...

<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 doesn't have a constructor that takes one argument. So listOfUsers = new ListViewItem(list); isn't going to work.

Try an approach 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;


来源:https://stackoverflow.com/questions/27217727/how-to-display-data-from-database-to-listview-in-wpf-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!