在Windows Phone 8.1中将数据从SQLite绑定到ListView

时间:2015-11-03 22:08:21

标签: c# listview windows-phone-8.1 sqlite-net

首先,我已尝试在stackoverflow上回答其他示例,并尝试了其他示例,但在我的案例中没有找到成功。

我试图将数据从DB中的表绑定到listview ListView本身如下所示:

<ListView x:Name="lbItems" Width="Auto" Height="Auto" Margin="10" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Opacity="100" BorderThickness="0" Foreground="White" Background="Transparent">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            </Style>
        </ListView.ItemContainerStyle>

        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="60" />
            </Grid.ColumnDefinitions>
            <CheckBox Grid.Column="0" x:Name="cbx" IsChecked="{Binding IsChecked}" Content="{Binding Content}" Height="58" Margin="10, 0, 0, 0" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Center" Width="Auto" />
            <AppBarButton Tag="{Binding Id}" Grid.Column="1" Icon="Delete" Height="58" HorizontalAlignment="Right" Width="60" VerticalAlignment="Stretch" HorizontalContentAlignment="Right" Margin="0,0,10,0" Click="DeleteButton_Click" />
        </Grid>
    </ListView>

然后在C#代码后面:

public sealed partial class MainPage : Page
{
    ObservableCollection<tbl_Items> DB_ItemsList = new ObservableCollection<tbl_Items>();

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        ReadAllItemsList dbitems = new ReadAllItemsList();
        DB_ItemsList = dbitems.GetAllItems();
        lbItems.ItemsSource = DB_ItemsList.OrderBy(i => i.Id).ToList();
    }

这里我按照这个例子来创建数据库和数据库操作:LINK

因此,在我的listview中,我只获取了我的表名(而不是绑定该表中的内容)。 我无法弄清楚我做错了什么。请帮助。

1 个答案:

答案 0 :(得分:1)

将Listview的模板代码保存在ListView的DataTemplate中,如下所示。

            <ListView.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="60" />
                    </Grid.ColumnDefinitions>
                    <CheckBox Grid.Column="0" x:Name="cbx" IsChecked="{Binding IsChecked}" Content="{Binding Content}" Height="58" Margin="10, 0, 0, 0" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Center" Width="Auto" />
                    <AppBarButton Tag="{Binding Id}" Grid.Column="1" Icon="Delete" Height="58" HorizontalAlignment="Right" Width="60" VerticalAlignment="Stretch" HorizontalContentAlignment="Right" Margin="0,0,10,0" Click="DeleteButton_Click" />
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>