2016-06-13 3 views
0

Я пытался сделать это немного и не имел большого количества кода. Я покажу вам свой код Meds.xaml и Meds.xaml.cs и посмотрите, могу ли я получить некоторую помощь в привязке данных к Listview. В принципе, заполняется форма, кнопка нажата, добавляется в базу данных и обновляется ListView.Windows Universal Apps - отображение данных SQLite в Listview

Meds.xaml

<TextBlock x:Name="textBlock1" HorizontalAlignment="Left" TextWrapping="Wrap" Text="Medication Name:" VerticalAlignment="Top" Margin="43,255,0,0" Foreground="#FFC6C6C6" FontSize="18.667"/> 
     <TextBox x:Name="medname_box" HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Margin="265,248,0,0" Width="186"/> 
    <TextBlock x:Name="textBlock1_Copy" HorizontalAlignment="Left" TextWrapping="Wrap" Text="Medication Total Dose:" VerticalAlignment="Top" 

.... и дальше и на

<ListView x:Name="listView" HorizontalAlignment="Left" Height="464" VerticalAlignment="Top" Width="283" Margin="655,217,0,0" SelectionChanged="listView_SelectionChanged"/> 

Где я хочу, чтобы данные отображаются

</Grid> 

Теперь, вот Meds .xaml.cs

public sealed partial class Meds : Page 
{ 
    string path; 
    SQLite.Net.SQLiteConnection conn; 

    public Meds() 
    { 
     this.InitializeComponent(); 
     path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, 
      "meds.sqlite"); 
     conn = new SQLite.Net.SQLiteConnection(new 
      SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path); 
     conn.CreateTable<Medications>(); 

     var query = conn.Table<Medications>(); 
     string id = ""; 
     string MedName = ""; 
     string MedDose = ""; 
     int AM; 
     int Noon; 
     int Supper; 
     int Night; 
     int PRN; 
     int Other; 
     string WhatFor = ""; 
    } 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     if (Frame.CanGoBack) 
     { 
      Frame.GoBack(); 
     } 


    } 

    private void button2_Click(object sender, RoutedEventArgs e) 
    { 

     var z = conn.Insert(new Medications() 
     { 


      MedName = medname_box.Text, 
      MedDose = meddose_box.Text, 

Не понял, флажков еще ...

  // AM = , 
     // Noon = "", 
     // Supper = "", 
     // Night = "", 
     // PRN = "", 
     // Other = "", 
     WhatFor = whatfor_box.Text 
     }); 

     //   var query = conn.Table<Medications>(); 
     //    string id = ""; 
     //    string CurrentMood = ""; 


     //    foreach (var message in query) 
     //    { 
     //  id = id + " " + message.Id; 
     //   CurrentMood = message.MedName; 

     //   } 
    } 

     private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 

    } 
} 
} 
public class Medications 
{ 
    [PrimaryKey, AutoIncrement] 
    public int Id { get; set; } 
public string MedName { get; set; } 
public string MedDose { get; set; } 
public int AM { get; set; } 
public int Noon { get; set; } 
public int Supper { get; set; } 
public int Night { get; set; } 
public int PRN { get; set; } 
public int Other { get; set; } 
public string WhatFor { get; set; } 

}

+0

И ваш вопрос ...? Пожалуйста, будьте немного точнее и удалите ненужный код, как прокомментированный материал. –

ответ

1

и посмотреть, смогу ли я получить некоторую помощь в связывании данных в ListView. В принципе, заполняется форма, кнопка нажата, добавляется в базу данных и обновляется ListView.

По вашему описанию и на основе кода, представленной выше, я сделал простой образец, который показывает, как отобразить SQLite данных в ListView с помощью Binding и SQLite.Net-PCL для справки:

Meds.xaml:

<StackPanel> 
    <TextBox Header="Medication Name: " x:Name="medname_box" HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="186" /> 
    <TextBox Header="Medication Total Dose: " x:Name="meddose_box" HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="186" /> 
    <TextBox Header="What For: " x:Name="whatfor_box" HorizontalAlignment="Left" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="186" /> 
    <Button x:Name="btnAdd" Content="Add" Click="btnAdd_Click" Width="186" Margin="0,5" /> 
    <Button x:Name="btnBack" Content="Back" Click="btnBack_Click" Width="186" Margin="0,5" /> 
    <ListView Header="Medications" x:Name="myList" Background="White" HorizontalAlignment="Left" Width="400"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Grid Width="400"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="*" /> 
        </Grid.ColumnDefinitions> 
        <!--Bind data to ListView Item, here I just bind three items for Medications, you can add other items if needed--> 
        <TextBlock x:Name="medName" Text="{Binding Path=MedName}" TextWrapping="Wrap" /> 
        <TextBlock Grid.Column="1" x:Name="medDose" Text="{Binding Path=MedDose}" TextWrapping="Wrap" /> 
        <TextBlock Grid.Column="2" x:Name="whatFor" Text="{Binding Path=WhatFor}" TextWrapping="Wrap" /> 
       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
</StackPanel> 

Meds.xaml.cs:

public sealed partial class Meds : Page 
{ 
    private string DBPath { get; set; } 

    public Meds() 
    { 
     this.InitializeComponent(); 
     // Create the Database 
     DBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "meds.sqlite"); 
     using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath)) 
     { 
      conn.CreateTable<Medications>(); 
      // Set ItemsSource to the sqlite data for ListView 
      myList.ItemsSource = conn.Table<Medications>(); 
     } 
    } 

    private void btnAdd_Click(object sender, RoutedEventArgs e) 
    { 
     using (SQLite.Net.SQLiteConnection conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), DBPath)) 
     { 
      // Add Medications 
      conn.Insert(new Medications 
      { 
       MedName = medname_box.Text, 
       MedDose = meddose_box.Text, 
       WhatFor = whatfor_box.Text 
      }); 
      // Update the ItemsSource for ListView 
      myList.ItemsSource = conn.Table<Medications>(); 
     } 
    } 

    private void btnBack_Click(object sender, RoutedEventArgs e) 
    { 
     if (Frame.CanGoBack) 
     { 
      Frame.GoBack(); 
     } 
    } 
} 

Вот Entire Sample и следующее выход: enter image description here

+0

Это отлично работает, спасибо! – sandorfalot

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