Как использовать экземпляр элемента управления в XAML Xamarin.Forms, когда платформа возвращает значение null? - PullRequest
0 голосов
/ 26 мая 2020

Я создал форму 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 из привязки?

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