wpf:使用mysql将自定义类绑定到datagrid

fslejnso  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(416)

我想使用mysql将我的用户类绑定到我的数据网格。
这是my user.cs:

public class User
{
    public string UserName { get; set; }
    public string UserPassword { get; set; }
    public string UserEmail { get; set; }
    public string UserFirstName { get; set; }
    public string UserLastName { get; set; }
}

这是my viewuser.xaml:

public view_users(string loginName)
    {
        InitializeComponent();
        List<User> user = new List<User>();

        btnSave.Visibility = Visibility.Hidden;
        labelLogin = loginName;
        labelLoginName.Content = labelLogin;

        string query;
        query = "select * from users";
        da = new MySqlDataAdapter(query, db.GetConnection());
        da.Fill(dt);

        userDataGrid.ItemsSource = dt.DefaultView;

    }

我不知道如何继续将我的用户类绑定到数据网格。所有的例子都是在没有mysql的情况下使用的。有人能帮我吗。

s6fujrry

s6fujrry1#

在xaml中,将项源绑定到用户(我将重命名为userlist,或其他表示集合的内容)

<DataGrid ItemsSource="{Binding UserList}" />

然后从数据表填充用户列表。
我通常通过创建一个接受datarow的构造函数来实现这一点。

public class User
{
    public User(rw)
    {
       UserName = rw["UserName"].ToString();
       UserPassword = rw["UserPassword"].ToString();
       UserEmail = rw["UserEmail"].ToString();
       UserFirstName = rw["UserFirstName "].ToString();
       UserLastName = rw["UserLastName"].ToString();
    }

    public string UserName { get; set; }
    public string UserPassword { get; set; }
    public string UserEmail { get; set; }
    public string UserFirstName { get; set; }
    public string UserLastName { get; set; }
}

然后列表可以这样填充:(我将使用observeCollection代替)。

public ObservableCollection<User> GetUsers()
{
    var UserList = new ObservableCollection<User>();
    string query;
    query = "select * from users";
    da = new MySqlDataAdapter(query, db.GetConnection());
    da.Fill(dt);
    foreach (DataRow rw in dt.Rows) { UserList.Add(new User(row)); }        
    return UserList;
}

相关问题