2015-11-22 4 views
0

Я пытаюсь заполнить 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> 

В результате я получаю ни с чем иным, чем связывание заключается в следующем:

Snapshot of the app illustrating that the ItemsSource is working but not as intended as it only shows: AuraFaktura.Customer in each ListViewItem

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> 

И результат:

Snapshot of the app illustrating that the DataTemplate is somehow working but not displaying as intended as the items are truncated and the header items are not showing.

Так как вы можете себе в GridViewHeaderItem являются не показывая и GridViewItem-х не отображаются должным образом ,

Вот результат я хочу закончить с:

Snapshot of the result i want to end up with

Как бы я идти вперед писать свой код XAML, чтобы достичь такого результата?

ответ

0

Просто примените маржу к краю текстовых блоков = "5,0,5,0"

 Смежные вопросы

  • Нет связанных вопросов^_^