Xamarin Forms 中的数据网格条目

Datagrid entry in Xamarin Forms

有谁知道是否可以实现像我下面附上的图片这样的条目?我想要一个数据网格来显示数据库中的数据。我试过使用 Xamarin.Forms.Datagrid 但它不允许手动添加行。我的 objective 是以这样一种方式显示参数以便于查看(类似于 excel sheet 格式)但是 Xamarin 的控制非常有限......只是想知道是否有人知道任何其他方式实现它?

这是我的数据网格代码。我只能创建带有名称的列,但不能创建行。

<dg:DataGrid HeaderHeight="50"
         BorderColor="#CCCCCC" HeaderBackground="#E0E6F8">
    <dg:DataGrid.Columns>
        <dg:DataGridColumn Title="Zone 1"/>
        <dg:DataGridColumn Title="Zone 2"/>
        <dg:DataGridColumn Title="Zone 3"/>
        <dg:DataGridColumn Title="Zone 4"/>
        <dg:DataGridColumn Title="Zone 5"/>
        <dg:DataGridColumn Title="Zone 6"/>
    </dg:DataGrid.Columns>
</dg:DataGrid>

您不需要创建此类条目。

你想达到这样的截图效果吗?

如果是这样,您应该将此布局添加到您的 xaml 文件夹中。

 <StackLayout>
        <!-- Place new controls here -->
        <dg:DataGrid ItemsSource="{Binding Teams}" SelectionEnabled="True"
               RowHeight="70" HeaderHeight="50" BorderColor="#CCCCCC" HeaderBackground="#E0E6F8">

            <dg:DataGrid.HeaderFontSize>
                <OnIdiom  x:TypeArguments="x:Double">
                    <OnIdiom.Tablet>15</OnIdiom.Tablet>
                    <OnIdiom.Phone>13</OnIdiom.Phone>
                </OnIdiom>
            </dg:DataGrid.HeaderFontSize>

            <dg:DataGrid.Columns>


                <dg:DataGridColumn Title="Team" PropertyName="Name" Width="2*"/>
                <dg:DataGridColumn Title="Win" PropertyName="Win" Width="0.95*"/>
                <dg:DataGridColumn Title="Loose" PropertyName="Loose"  Width="1*"/>
                <dg:DataGridColumn Title="Home" PropertyName="Home"/>
                <dg:DataGridColumn Title="Percentage" PropertyName="Percentage" StringFormat="{}{0:0.00}" />

            </dg:DataGrid.Columns>


        </dg:DataGrid>
    </StackLayout>

如果您不知道如何在此控件中添加行。例如,

<dg:DataGridColumn Title="Team" PropertyName="Name" Width="2*"/>

上面一行有三个属性,TitlePropertyNameWidth

Title:表示一线队,胜负,主场,冠军百分比。

Width:这个Column

的平均宽度

如果你想在Title中添加数据,你应该使用PropertyName属性。

在布局背景中,您添加绑定上下文。

 public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            this.BindingContext = new MyViewModel();
        }
    }

这是我的 MyViewModel.cs

    public class MyViewModel
    {
        public ObservableCollection<Team> Teams { get; set; }
        public MyViewModel()
        {
            Teams = new ObservableCollection<Team>();

            Teams.Add(new Team() {  Home = "lost1", Win = "31", Loose="1", Name="cava", Percentage="91" }) ;
            Teams.Add(new Team() {  Home = "lost2", Win = "31", Loose = "2", Name = "cava", Percentage = "91" });
            Teams.Add(new Team() { Home = "lost3", Win = "31", Loose = "3", Name = "cava", Percentage = "91" });
            Teams.Add(new Team() {  Home = "lost4", Win = "31", Loose = "4", Name = "cava", Percentage = "91 "});
            Teams.Add(new Team() {  Home = "lost5", Win = "31", Loose = "5", Name = "cava", Percentage = "91" });
            Teams.Add(new Team() {  Home = "lost6", Win = "31", Loose = "6", Name = "cava", Percentage = "91",  });
        }
    }

这是我的 Team 代码。

  public class Team
    {

        public string Name { get; set; }
        public string Win { get; set; }
        public string Loose { get; set; }
        public string Home { get; set; }
        public string Percentage { get; set; }



    }

这是我的演示。

https://github.com/851265601/Xamarin.Android_ListviewSelect/blob/master/DataGridDemo1.zip