Xamarin.Forms: привязка к коду за свойством в XAML - PullRequest
0 голосов
/ 13 января 2019

В Xamarin.Forms я хотел бы привязать свойство кода к метке в XAML.

Я нашел много ответов и веб-страниц по этой теме, но все они охватывают более сложные сценарии.

Это моя страница 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:local="clr-namespace:TrackValigie"
             x:Class="TrackValigie.SelViaggioPage">
    <ContentPage.Content>
            <StackLayout>
                <Label Text="{Binding ?????????}" />
            </StackLayout>
    </ContentPage.Content>
</ContentPage>

И это код позади:

[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class SelViaggioPage : ContentPage
{

    private string _lblText;
    public string LblText
    {
        get
        {
            return _lblText;
        }
        set
        {
            _lblText = value;
            OnPropertyChanged();
        }
    }

    public SelViaggioPage()
    {
        InitializeComponent();
    }

    protected override void OnAppearing()
    {

        this.LblText = "Ciao!!";

        base.OnAppearing();
    }
}

Я хотел бы связать свойство "LblText" с меткой, используя только XAML , что означает без установки привязки или контекста привязки в коде позади.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Вам необходимо установить x: Name для ContentPage, как указано в ответе Джейсона.

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:TrackValigie"
             x:Class="TrackValigie.SelViaggioPage"
             x:Name = "MyControl"/>

Вместо использования BindingContext вы можете использовать ElementName

 <TextBlock Text="{Binding ElementName=TestControl,Path=StudentName}"/>
0 голосов
/ 13 января 2019

ваша страница должна будет реализовать INotifyPropertyChanged, но синтаксис привязки должен быть

<ContentPage x:Name="MyPage" ... />

... 

<Label BindingContext="{x:Reference Name=MyPage}" Text="{Binding LblText}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...