Ошибки при попытке создать ViewCell для нескольких данных sqlite для ListView в xamarin - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь создать ViewCell, который выглядит так, как показано на изображении ниже.Куски данных, которые должны быть в ListView, хранятся в базе данных sqlite.Но я продолжаю получать сообщение об ошибке «имя не существует в текущем контексте, и я понятия не имею, что делать.

Мой код ListView в XAML выглядит следующим образом:

<ListView 
    x:Name="todayActivities"
    SeparatorColor="Transparent"
    BackgroundColor="Transparent"
    IsGroupingEnabled="true"
    IsPullToRefreshEnabled="true"
    ItemTapped="Handle_ItemTapped">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout 
                    Padding="10, 10, 10, 10">
                    <Label 
                        TextColor="White" 
                        FontSize="20" 
                        HorizontalOptions="Center" 
                        x:Name="title"/>
                    <Grid>
                        <Label 
                            TextColor="White" 
                            FontSize="15" 
                            HorizontalOptions="Start" 
                            x:Name="location" 
                            Grid.Row="0" 
                            Grid.Column="0" 
                            Text="{Binding Activitylocation}"/>
                        <Label 
                            TextColor="White" 
                            FontSize="15" 
                            HorizontalOptions="End" 
                            x:Name="time" 
                            Grid.Row="0" 
                            Grid.Column="1"/>
                        <Label 
                            TextColor="White" 
                            FontSize="15" 
                            HorizontalOptions="End" 
                            x:Name="organizer" 
                            Grid.Row="1" 
                            Grid.Column="0"/>
                        <Button 
                            Text="Request to join" 
                            TextColor="White" 
                            FontSize="15" 
                            Clicked="Handle_Clicked_5" 
                            Grid.Row="1" 
                            Grid.Column="1"/>
                    </Grid>
                </StackLayout>                                    
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Код списка в C # (Кодовый фрагмент):

        DatabaseManager DBM = new DatabaseManager();

    protected override void OnAppearing()
    {
        base.OnAppearing();
        todayActivities.ItemsSource = DBM.GetTodayActivities();

        title.Text = DBM.GetTodayActivities().ToString();
        location.Text = DBM.GetTodayLocation().ToString();
        time.Text = DBM.GetTodayTimes().ToString();
        organizer.Text = DBM.GetTodayOrganizers().ToString();

// Здесь отображаются ошибки ^ это говорит о том, что название "title / location / time ..." не имеетсуществует в текущем контексте }

не уверен, что код Activites.cs является актуальным, но на всякий случай это:

public class Activities
{
    public string activityName { get; set; }
    public string activityDate { get; set; }
    public string location { get; set; }
    public string description { get; set; }
    public string participants { get; set; }
    public string activityTime { get; set; }
    public string activityOrganizer { get; set; }

    public override string ToString()
    {
        return  activityName;
    }
}

DatabaseManager.cs:

public List<Activities> GetTodayActivities()
{
    return dbConnection.Query<Activities>("Select activityName, activityTime, location, activityOrganizer FROM [Activities]");
}

В конечном итоге это должно выглядеть так: expected result

ОБНОВЛЕНИЕ

Основываясь на предложении Джейсона, я внес следующие изменения, но получаюошибка, которая говорит: «По какой-то причине в строке -1 не найдено ни одного свойства, ни привязываемого свойства, ни события для« Дочерних »или несоответствующего типа между значением и свойством».

XAML:

<Label 
    TextColor="White" 
    FontSize="20" 
    HorizontalOptions="Center" 
    x:Name="title" 
    Text="{Binding activityName}"/>

<Grid>
    <Label 
        TextColor="White" 
        FontSize="15" 
        HorizontalOptions="Start" 
        x:Name="location" 
        Grid.Row="0" 
        Grid.Column="0" 
        Text="{Binding location}"/>
    <Label 
        TextColor="White" 
        FontSize="15" 
        HorizontalOptions="End" 
        x:Name="time" 
        Grid.Row="0" 
        Grid.Column="1" 
        Text="{Binding activityTime}"/>
    <Label 
        TextColor="White" 
        FontSize="15" 
        HorizontalOptions="End" 
        x:Name="organizer" 
        Grid.Row="1" 
        Grid.Column="0" 
        Text="{Binding activityOrganizer}"/>
    <Button 
        Text="Request to join" 
        TextColor="White" 
        FontSize="15" 
        Clicked="Handle_Clicked_5" 
        Grid.Row="1" 
        Grid.Column="1"/>
</Grid>

CodeBehind:

protected override void OnAppearing()
{
    base.OnAppearing();
    todayActivities.ItemsSource = DBM.GetTodayActivities();
}

Как и просил Том, вот полный код XAML:

    <?xml version="1.0" encoding="UTF-8"?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
                  x:Class="RoseySports.Home">




            <MasterDetailPage.Master>

        <ContentPage Title="Menu"> 
            <AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">

        <Image AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
            Source="sidebar.jpg" Aspect="Fill"/>

        <ScrollView AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1">


        <StackLayout HorizontalOptions="Center" VerticalOptions="Center" Spacing="20">
        <Button Text="Create Activity" TextColor="White" Clicked="Handle_Clicked" FontSize="15"/>
            <Button Text="Check Availability" TextColor="White" FontSize="15" Clicked="Handle_Clicked_3"/>
            <Button Text="Check Invitations" TextColor="White" FontSize="15"/>
            <Button x:Name="SMA" Text="Propose Saturday Morning Activity" TextColor="White" FontSize="15"/>
            <Button x:Name="Logout" Text="Logout" Clicked="Handle_Clicked_1" TextColor="White" Margin="20" VerticalOptions="End" FontSize="20"/>            
        </StackLayout>
        </ScrollView>
        </AbsoluteLayout>
            </ContentPage>
                </MasterDetailPage.Master>


            <MasterDetailPage.Detail>

            <ContentPage Title="Welcome To Le Rosey Sports">

        <AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">

        <Image AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
            Source="background.jpg" Aspect="AspectFill"/>

        <ScrollView AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1">

                    <StackLayout>

                        <StackLayout Orientation="Horizontal" Padding="10, 40, 10, 10" Spacing="40">
                    <AbsoluteLayout VerticalOptions="Start">

                                        <Button Image="menu.png" WidthRequest="40" HeightRequest="40" HorizontalOptions="Start" Clicked="Handle_Clicked_2"/>

                                                                            </AbsoluteLayout>



                                                                            <Label Text="Today's Activities" FontSize="25" TextColor="White" HorizontalOptions="Center"/>


                            </StackLayout>

                                            <ListView 
                            x:Name="todayActivities"
                            SeparatorColor="Transparent"
                            BackgroundColor="Transparent"
                            IsGroupingEnabled="true"
                            IsPullToRefreshEnabled="true"
                            ItemTapped="Handle_ItemTapped">
                            <ListView.ItemTemplate>
                                <DataTemplate>

                                    <ViewCell>

<StackLayout Padding="10, 10, 10, 10">

                                            <Label TextColor="White" FontSize="20" HorizontalOptions="Center" x:Name="title" Text="{Binding activityName}"/>

                                            <Grid>
                                            <Label TextColor="White" FontSize="15" HorizontalOptions="Start" x:Name="location" Grid.Row="0" Grid.Column="0" Text="{Binding location}"/>
                                                <Label TextColor="White" FontSize="15" HorizontalOptions="End" x:Name="time" Grid.Row="0" Grid.Column="1" Text="{Binding activityTime}"/>
                                            <Label TextColor="White" FontSize="15" HorizontalOptions="End" x:Name="organizer" Grid.Row="1" Grid.Column="0" Text="{Binding activityOrganizer}"/>
                                            <Button Text="Request to join" TextColor="White" FontSize="15" Clicked="Handle_Clicked_5" Grid.Row="1" Grid.Column="1"/>

                                             </Grid>


                                        </StackLayout>                                    
                                        </ViewCell>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>

                        </StackLayout>
        </ScrollView>
        </AbsoluteLayout>


        </ContentPage>

            </MasterDetailPage.Detail>
</MasterDetailPage>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...