Привязка данных из SQLite к ListView в Windows Phone 8.1

Сначала я пробовал другие примеры, на которые я ответил здесь, в stackoverflow, а также пробовал другие примеры, но не добился успеха в моем случае.

Я пытаюсь привязать данные из таблицы в БД к списку. Сам 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>

а затем в коде С# позади:

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

Здесь я следую этому примеру для создания базы данных и операций с базой данных: ССЫЛКА

В результате в моем списке я получаю только имя моей таблицы (вместо привязки содержимого из этой таблицы). Я не могу понять, что я делаю неправильно. Пожалуйста, помогите.


person al1en    schedule 03.11.2015    source источник


Ответы (1)


Сохраните код шаблона Listview внутри DataTemplate ListView следующим образом.

            <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>
person Janak    schedule 04.11.2015
comment
Спасибо, чувак, ты спасаешь жизнь. Я потратил на это около недели и не смог найти объяснения, как это сделать. - person al1en; 05.11.2015