【问题标题】:WPF: Binding custom class to datagrid using mysqlWPF:使用 mysql 将自定义类绑定到数据网格
【发布时间】:2018-09-02 16:18:24
【问题描述】:

我想使用 mysql 将我的用户类绑定到我的数据网格。

这是我的 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; }
}

这是我的 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 的情况下使用。谁能帮帮我。

【问题讨论】:

  • 从 MySQL 表中查询数据是完全不相关的。 UI 和 DataAccess 被不止一层抽象隔开

标签: c# mysql wpf


【解决方案1】:

在您的 Xaml 中将项目源绑定到用户。 (我会重命名为 UserList,或其他表示集合的名称)

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

然后从 DataTable 填充用户列表。

我通常通过创建一个采用 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; }
}

然后可以像这样填充列表:(我会改用 ObservableCollection)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2011-01-31
    相关资源
    最近更新 更多