C# 如何使用x:Bind和System.Collections.Generic.List填充ListView并生成列
在将ItemsSource设置为C# 如何使用x:Bind和System.Collections.Generic.List填充ListView并生成列,c#,listview,gridview,win-universal-app,xbind,C#,Listview,Gridview,Win Universal App,Xbind,在将ItemsSource设置为x:Bind时,我试图用a填充,但我不知道如何制作列并使项目正确显示 以下是我到目前为止得到的信息: 数据库.cs中的客户类 public class Customer { [PrimaryKey, AutoIncrement] public int Id { get; set; } public string CompanyName { get; set; } public string FirstName { get; set;
x:Bind
时,我试图用a填充,但我不知道如何制作列并使项目正确显示
以下是我到目前为止得到的信息:
数据库.cs中的客户类
public class Customer
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string CompanyName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Phone { get; set; }
public string Email { get; set; }
public string Adress { get; set; }
public int PostCode { get; set; }
public string PostArea { get; set; }
public string CreatedDate { get; set; }
public string UpdatedDate { get; set; }
}
Database.cs中返回客户对象列表的FetchCustomer方法
public List<Customer> FetchCustomer()
{
using (SQLiteConnection _connection = new SQLiteConnection(sqlitePlatform, dbFilePath))
{
List<Customer> customers = new List<Customer>();
var _customers = _connection.Table<Customer>();
foreach (Customer customer in _customers)
{
customers.Add(customer);
}
return customers;
}
}
public List FetchCustomer()
{
使用(SQLiteConnection _connection=newsqliteconnection(sqlitePlatform,dbFilePath))
{
列出客户=新列表();
var_customers=_connection.Table();
foreach(客户中的客户)
{
客户。添加(客户);
}
返回客户;
}
}
客户查看页面
public sealed partial class CustomerView : Page
{
public List<Customer> CustomersFromDB { get; set; }
public CustomerView()
{
this.InitializeComponent();
ReadyCustomers();
}
private void ReadyCustomers()
{
var db = new Database();
CustomersFromDB = db.FetchCustomer();
}
}
<ListView Grid.Row="1" ItemsSource="{x:Bind CustomersFromDB}"/>
公共密封部分类CustomerView:第页
{
公共列表CustomerFromDB{get;set;}
公共客户视图()
{
this.InitializeComponent();
ReadyCustomers();
}
private void ReadyCustomers()
{
var db=新数据库();
CustomerFromDB=db.FetchCustomer();
}
}
绑定ItemsSource的XAML
public sealed partial class CustomerView : Page
{
public List<Customer> CustomersFromDB { get; set; }
public CustomerView()
{
this.InitializeComponent();
ReadyCustomers();
}
private void ReadyCustomers()
{
var db = new Database();
CustomersFromDB = db.FetchCustomer();
}
}
<ListView Grid.Row="1" ItemsSource="{x:Bind CustomersFromDB}"/>
我如何继续这样做,以便自动生成列并正确显示项目
我曾尝试添加s并浏览不同的属性,但还没有发现如何添加
<ListView Grid.Row="1" ItemsSource="{x:Bind CustomersFromDB}">
<ListView.Header>
<ListViewHeaderItem ???></ListViewHeaderItem>
</ListView.Header>
</ListView>
通过绑定,我得到的结果是:
更新
我今天取得了一些进展,现在有了正确的数据输出。我发现使用DataTemplate可以在元素上设置绑定
我仍在努力以正确的方式显示数据
下面是我现在编写的XAML:
<GridView Grid.Row="1" ItemsSource="{x:Bind CustomersFromDB}" HorizontalAlignment="Stretch">
<GridViewHeaderItem Content="CompanyName"></GridViewHeaderItem>
<GridViewHeaderItem Content="FirstName"></GridViewHeaderItem>
<GridViewHeaderItem Content="LastName"></GridViewHeaderItem>
<GridViewHeaderItem Content="Phone"></GridViewHeaderItem>
<GridViewHeaderItem Content="Email"></GridViewHeaderItem>
<GridViewHeaderItem Content="Adress"></GridViewHeaderItem>
<GridViewHeaderItem Content="PostCode"></GridViewHeaderItem>
<GridViewHeaderItem Content="PostArea"></GridViewHeaderItem>
<GridViewHeaderItem Content="Comment"></GridViewHeaderItem>
<GridView.ItemTemplate>
<DataTemplate>
<GridViewItem BorderThickness="0" BorderBrush="Transparent">
<GridViewItem.Content>
<StackPanel Orientation="Horizontal" BorderThickness="0" BorderBrush="Transparent">
<TextBlock Text="{Binding CompanyName}"></TextBlock>
<TextBlock Text="{Binding FirstName}"></TextBlock>
<TextBlock Text="{Binding LastName}"></TextBlock>
<TextBlock Text="{Binding Phone}"></TextBlock>
<TextBlock Text="{Binding Email}"></TextBlock>
<TextBlock Text="{Binding Adress}"></TextBlock>
<TextBlock Text="{Binding PostCode}"></TextBlock>
<TextBlock Text="{Binding PostArea}"></TextBlock>
<TextBlock Text="{Binding Comment}"></TextBlock>
<TextBlock Text="{Binding CreatedDate}"></TextBlock>
<TextBlock Text="{Binding UpdatedDate}"></TextBlock>
</StackPanel>
</GridViewItem.Content>
</GridViewItem>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
结果是:
因此,正如您所知,GridViewHeaderItem未显示,GridViewItem未正确显示
以下是我希望得到的结果:
我将如何继续编写XAML以实现这样的结果?只需将边距应用于textblocks margin=“5,0,5,0”