0

I've been trying to do this for a bit and don't have much code.. I'll show you my Meds.xaml and Meds.xaml.cs code, and see if I can get some help into binding the data into a Listview. Basically, a form is filled in, a button clicked, added to the database and updates the 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" 

.... and on and on

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

Where I want the data displayed

</Grid>

Now, here's 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,

Haven't figured out the checkboxes yet...

         // 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; }

}

1
  • And your question is...? Please be a little more precise and remove unnecessary code like commented out stuff. Commented Jun 13, 2016 at 21:37

1 Answer 1

2

and see if I can get some help into binding the data into a Listview. Basically, a form is filled in, a button clicked, added to the database and updates the ListView.

According to your description and based on the code you provided above, I have made a simple sample which shows how to display SQLite data in ListView using Binding and SQLite.Net-PCL for your reference:

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();
        }
    }
}

Here is the Entire Sample and following is the output: enter image description here

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.