Я создал форму XAML с меткой:
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="project.MainPage">
<StackLayout>
<Label x:Name="SpeciesLabel" Text="{Binding Species}" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage>
и установил BindingContext
своего представления в конструкторе кода программной части:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SQLite;
using Xamarin.Forms;
using project.Model;
namespace project
{
[DesignTimeVisible(false)]
public partial class MainPage : ContentPage
{
public MainPage()
{
InMemoryPlantCollection collection = new InMemoryPlantCollection();
BindingContext = collection.plants[0];
}
}
}
Я ожидаю, что метка привязана к свойству Species
объекта в коллекции (это свойство существует и имеет ненулевое значение String
). Однако, когда я создаю и запускаю приложение, на этикетке нет текста. Если я остановлюсь в отладчике в MainPage()
, будет поле this.SpeciesLabel
типа Xamarin.Forms.Label
, но его значение будет null
. Как мне создать экземпляр этого поля и прочитать его значение Text
из привязки?