Я пытаюсь заполнить ListViewList при настройке ItemsSource как x:Bind
, и я не могу понять, как это сделать столбцов и правильно отображать элементы.Как заполнить ListView с помощью x: Bind и System.Collections.Generic.List и генерировать столбцы
Вот что я получил до сих пор:
Класс клиента в Database.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; }
}
Метод FetchCustomer в Database.cs, который возвращает список объектов Заказчика
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;
}
}
Страница CustomerView Page
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();
}
}
XAML, где я привязать ItemsSource
<ListView Grid.Row="1" ItemsSource="{x:Bind CustomersFromDB}"/>
Как я иду вперед, делая это так, чтобы столбцы автогенерируемые и элементы отображаются должным образом?
Я попытался добавить ListViewHeaderItem s и просмотреть различные свойства, но havent узнал, как еще.
<ListView Grid.Row="1" ItemsSource="{x:Bind CustomersFromDB}">
<ListView.Header>
<ListViewHeaderItem ???></ListViewHeaderItem>
</ListView.Header>
</ListView>
В результате я получаю ни с чем иным, чем связывание заключается в следующем:
Update Я сделал некоторые успехи сегодня и я теперь правильный вывод данных. Я узнал, что с использованием 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, чтобы достичь такого результата?