ВСЕ метки в моем проекте возвращают NULL, даже если он содержит значение - PullRequest
0 голосов
/ 29 апреля 2020

Начиная с сегодняшнего дня, все мои ярлыки по какой-то причине возвращают ноль.

Попытка переустановки Visual studio, переход на случайную версию xamarin.form / essentials. Пробуем один и тот же код на разных P C. Та же проблема.

Коды одной из моих страниц:

XAML:

    <ScrollView x:Name="ScrollView">
            <StackLayout Spacing="20" Padding="20">
                <Label Text="Drugs Name:" FontSize="Small" />
                <Label Text="{Binding DrugsName}" d:Text="Drug Name" FontSize="Medium"/>

                <Label Text="Nick Name:" FontSize="Small" />
                <Label Text="{Binding NickName}" d:Text="Drug Nick Name" FontSize="Medium"/>

                <Label Text="Expiry Date:" FontSize="Small" />
                <Label Text="{Binding ExpiryDate, StringFormat='{0:MMMM dd,yyyy}'}" d:Text="Quantity" FontSize="Medium"/>

                <Label Text="Note:" FontSize="Small"/>
 Note Label ---->      <Label Text="{Binding Note}" x:Name="lblnotes" d:Text="Note" FontSize="Medium"/>

                <Label Text="Location Image:" FontSize="Small"/>
                <Image Source="{Binding image_path}"/>
        </StackLayout>
        </ScrollView>

CS:

    public StorageDetailsPage()
        {
            InitializeComponent();

// checking if note contains nothing, if nothing returns N/A

            if (String.IsNullOrWhiteSpace(lblnotes.Text) == true)
            {
                lblnotes.Text = "N/A";
            }
        }

Все было хорошо в моей разработке ход выполнения, весь проект только что вышел из строя сегодня.

Изображения:

Отладка возвращает ноль

Закомментировано и не отображается в нуле 1022 *

1 Ответ

0 голосов
/ 29 апреля 2020

Причина не обязательна для данных ContentPage .

public StorageDetailsPage(object obj)
    {
        InitializeComponent();

        BindingContext = obj;  // not missing this in ContentPage         

        if (String.IsNullOrWhiteSpace(lblnotes.Text) == true)
        {
            lblnotes.Text = "N/A";
        }
    }

Из второго общего изображения вы увидите, что оно не равно нулю. Потому что он установил BindingContext = obj;, однако первое изображение не делает этого.

Модифицируя код, как показано ниже, для проверки:

public StorageDetailsPage()
    {
        InitializeComponent();

        BindingContext = new YourViewModel();  // bind a ViewModel here to check         
        if (String.IsNullOrWhiteSpace(lblnotes.Text) == true)
        {
            lblnotes.Text = "N/A";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...