Я работаю над школьным проектом, и мне нужно связать элементы между моим XAML и C# кодом. Я определил имена в файле XAML, но код C# сообщает, что некоторые элементы «не существуют в текущем контексте». Переменные в C# с этой ошибкой:
StartDatePicker
EndDatePicker
InstructorName
InstructorEmail
InstructorPhone
Я заменил эти элементы путем копирования и вставки полей x: Name из файла XAML, очистил все файлы и перестроил решение, но я все еще получаю сообщение об ошибке.
затронутые C# кодовые блоки:
public CourseInfoPage(Courses selectedCourse)
{
InitializeComponent();
thisCourse = selectedCourse;
courseId = thisCourse.Id;
int courseInstructorId = thisCourse.Instructor;
GetCourseInstructor(courseInstructorId);
StartDatePicker.Date = thisCourse.RealStartDate;
EndDatePicker.Date = thisCourse.RealEndDate;
}
private void GetCourseInstructor(int courseInstructorId)
{
using (SQLiteConnection conn = new SQLiteConnection(App.DBLocation))
{
var instructorName = conn.Query<Instructors>($"SELECT FirstName, LastName FROM Instructors WHERE Id = {courseInstructorId}");
var email = conn.Query<Instructors>($"SELECT Email FROM Instructors WHERE Id = {courseInstructorId}");
var phone = conn.Query<Instructors>($"SELECT Phone FROM Instructors WHERE Id = {courseInstructorId}");
InstructorName.Text = instructorName.ToString();
InstructorEmail.Text = email.ToString();
InstructorPhone.Text = phone.ToString();
}
}
XAML CollectionView:
<CollectionView x:Name="CourseInfoView">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0"
Grid.Row="0"
Text="{Binding CourseID}"
<Label Grid.Column="1"
Grid.Row="0"
Text="{Binding CourseName}"
<Label Grid.Column="0"
Grid.Row="1"
Text="Start Date:"
<DatePicker x:Name="StartDatePicker"
MinimumDate="01/01/2020"
MaximumDate="12/31/2050"
Date="{Binding RealStartDate}"
DateSelected="OnDateSelected"
Grid.Column="1"
Grid.Row="1"
<DatePicker.Format>MM/dd/yyyy</DatePicker.Format>
</DatePicker>
<Label Grid.Column="0"
Grid.Row="2"
Text="End Date:"
<DatePicker x:Name="EndDatePicker"
MinimumDate="02/01/2020"
MaximumDate="01/01/2051"
Date="{Binding RealEndDate}"
DateSelected="OnDateSelected"
Grid.Column="1"
Grid.Row="2"
<DatePicker.Format>MM/dd/yyyy</DatePicker.Format>
</DatePicker>
<Label Grid.Column="0"
Grid.Row="3"
Text="Select a status:"
<Picker x:Name="picker"
Grid.Column="1"
Grid.Row="3">
<Picker.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>Not Started</x:String>
<x:String>In Progress</x:String>
<x:String>Completed</x:String>
<x:String>Not Passed</x:String>
</x:Array>
</Picker.ItemsSource>
</Picker>
<Label Grid.Column="0"
Grid.Row="4"
Text="Course Instructor:"
<Label Grid.Column="1"
Grid.Row="4"
x:Name="InstructorName"
<Label Grid.Column="0"
Grid.Row="5"
Text="Instructor Email:"
<Label Grid.Column="1"
Grid.Row="5"
x:Name="InstructorEmail"
<Label Grid.Column="0"
Grid.Row="6"
Text="Instructor Phone:"
<Label Grid.Column="1"
Grid.Row="6"
x:Name="InstructorPhone"
<Label Grid.Column="0"
Grid.Row="7"
Text="Course Description:"
<Label Grid.ColumnSpan="2"
Grid.Row="8"
Text="{Binding CourseDescription}"
<Button x:Name="courseNotesButton"
Text="View Course Notes"
Clicked="courseNotesButton_Clicked"/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
Я уверен, что я упускаю что-то простое, но я не вижу, что это такое. Любая помощь, которую кто-либо может оказать, будет супер; спасибо!