I am trying to creating windows phone 8 project with database (sqlite) techniques
I have tried the following:
1) Download sqlite fie from server & saved it
i got it., according to "Jan Smuda " reply i found solution for that .,
i removed the binding syntax (ItemsSource="{Binding}") in XAML code for both listpicker and listbox and add itemsSource in code itself., like this
so my XAML code like this:
<ListBox Name="scheduleListbox" Margin="5,85,5,60" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="100" Width="480" Margin="0,0,0,5" Background="CadetBlue">
<Grid.RowDefinitions>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="{Binding team1_Name}" Name="team1Name" Foreground="White"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding team2_Name}" Name="team2Name" Foreground="Red"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding venue}" Name="venue" Foreground="Yellow"></TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<toolkit:ListPicker Name="selectTeam" Height="60" VerticalAlignment="Bottom" Background="Black" FullModeHeader="Select your Team Schedule" Foreground="White" ExpansionMode="FullScreenOnly" Margin="5,0" SelectionChanged="selectTeam_SelectionChanged">
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<StackPanel Name="listpickerStackpannel" >
<TextBlock Text="{Binding}" TextAlignment="Center" FontFamily="Times New Roman" FontSize="30"></TextBlock>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<StackPanel Name="listpickerStackpannel" Margin="10">
<TextBlock Text="{Binding}" TextAlignment="Center" FontFamily="Times New Roman" FontSize="30"></TextBlock>
</StackPanel>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
and my CS code like this :
string country = "Full Schedule";
List<match_schedule> ScheduleList;
// the local folder DB path
string DB_PATH = Path.Combine(ApplicationData.Current.LocalFolder.Path, "sample.sqlite");
//SQLite connection
private SQLiteConnection dbConn;
ProgressIndicator _progressIndicator = new ProgressIndicator();
private List<string> _source = new List<string>
{
"Full Schedule","Afghanistan","Australia","Bangladesh","England","Hong Kong","India","Ireland","Nepal","Netherlands","New Zealand","Pakistan","South Africa","Sri Lanka","UAE","West Indies","Zimbabwe"
};
public Schedule()
{
InitializeComponent();
selectTeam.ItemsSource = _source;
Loaded += Schedule_Loaded;
}
void Schedule_Loaded(object sender, RoutedEventArgs e)
{
}
private void selectTeam_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
country = (sender as ListPicker).SelectedItem.ToString();
dbConn = new SQLiteConnection(DB_PATH);
/// Create the table Task, if it doesn't exist.
dbConn.CreateTable<match_schedule>();
if (country == "Full Schedule")
{
ScheduleList = dbConn.Query<match_schedule>("select * from tableName").ToList<match_schedule>();
}
else
{
ScheduleList = dbConn.Query<match_schedule>("select * from tableName where team1_Name=? or team2_Name=?", country).ToList<match_schedule>();
}
scheduleListbox.ItemsSource = ScheduleList;
}
}
public class match_schedule
{
[PrimaryKey, AutoIncrement]
public int match_id { get; set; }
public string team1_Name { get; set; }
public string team2_Name { get; set; }
public string match_no { get; set; }
public string group { get; set; }
public string venue { get; set; }
public string time { get; set; }
public string day { get; set; }
}
Finally I Got to retrieve column values from my local SQLite Database and i bind it in listbox.,
Lot of thanks to jan Smuda for responding me and thanks to stack overflow also.,
I can't see any code where you are adding data to a ListBox. If you have data pulled from the database, add it to ItemsSource property that's all.
scheduleListbox.ItemsSource = retrievedTasks;
I do not understand why you use ItemsSource="{Binding}" on selectTeam ListPicker when you fill it in the constructor. And why do you use the same to scheduleListbox. See Binding overview
If you youse empty binding syntax: {Binding}. The ListBox inherits the DataContext from a parent element. When the path is not specified, the default is to bind to the entire object.