Я пытаюсь создать 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]");
}
В конечном итоге это должно выглядеть так:
ОБНОВЛЕНИЕ
Основываясь на предложении Джейсона, я внес следующие изменения, но получаюошибка, которая говорит: «По какой-то причине в строке -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>