微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有一种方法可以像在WinForms代码中那样轻松地将网格绑定到Xamarin中的表?

如何解决有没有一种方法可以像在WinForms代码中那样轻松地将网格绑定到Xamarin中的表?

我是xamarin的新手,我需要轻松地将网格(或类似的东西)链接MysqL数据库表。 在WinForms中,我是通过与设计者并用几行代码放置网格来实现的,但是使用Xamarin却无能为力。 我当前的项目是带有认“标签”预设的XamarinForm。

这是WinForm代码

        try
        {
            MysqLConnection cnn;
            string connetionString = "server=sql7.freesqldatabase.com;database=------;port=----;uid=-------;pwd=------;";
            cnn = new MysqLConnection(connetionString);

            DataTable dt = new DataTable();

            MysqLCommand cmd;
            cnn.open();

            cmd = cnn.CreateCommand();
            cmd.CommandText = "SELECT * from Products";
            MysqLDataAdapter adapter = new MysqLDataAdapter(cmd);
            adapter.Fill(dt);
            dataGridView1.DataSource = dt; //dataGridView WinFrom component

            cnn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

在Xamarin中有没有办法做到这一点? (我的目标是在一个页面显示所有数据库表)

解决方法

欢迎您!

虽然 Xamarin 可以直接将bc用作来源,但还有另一种方法可以转换表日期并将其用于控件(例如{ {1}},DataTable等。

例如,ItemSource可以设置如下:

CollectionView

这里DataGrid是表数据的模型,您需要在Xamarin Forms中手动创建它。然后,应用程序将根据模型样式将表数据转换为列表数据。

MyDataGrid.ItemsSource = await TodoItemDatabase.Database.Table<TodoItem>().ToListAsync();

关于在Xamarin中使用数据库,您可以参考this official document。此处有a sample project供参考。上面的代码 TodoItemDatabase 类也基于此示例。

这是 TodoItemDatabase 类:

TodoItem

Constants 类,其中包含数据库名称和其他内容。

using SQLite;
public class TodoItem
{
    [PrimaryKey,AutoIncrement]
    public int ID { get; set; }
    public string Name { get; set; }
    public string Notes { get; set; }
    public bool Done { get; set; }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。