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*"/>
上面一行有三个属性,Title
、PropertyName
、Width
。
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
有谁知道是否可以实现像我下面附上的图片这样的条目?我想要一个数据网格来显示数据库中的数据。我试过使用 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*"/>
上面一行有三个属性,Title
、PropertyName
、Width
。
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