Xamarin ContentView привязка

Я пытаюсь создать элемент управления, используя это руководство, но заголовок, который я устанавливаю в XAML для своего CustomView, не отображается. Вот код:

CustomView.xaml

<?xml version="1.0" encoding="UTF-8"?>
<ContentView x:Class="TestApp.CustomView"
             xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Name="this">
    <Label Text="{x:Binding Source={x:Reference this}, Path=Caption}" />
</ContentView>

CustomView.xaml.cs

public partial class CustomView : ContentView
{
    public static readonly BindableProperty CaptionProperty = BindableProperty.Create(
                                                              nameof(Caption),
                                                              typeof(string),
                                                              typeof(CustomView),
                                                              string.Empty);

    public string Caption
    {
        get => (string)GetValue(CaptionProperty);
        set => SetValue(CaptionProperty, value);
    }

    public CustomView()
    {
        InitializeComponent();
    }
}

Я использую CustomView, как это:

<?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:TestApp"
             x:Class="TestApp.MainPage">

    <ContentPage.Content>
        <local:CustomView Caption="Test" />
    </ContentPage.Content>
</ContentPage>

Но на экране ничего не отображается (без ярлыка "Тест").

Однако, если я изменю CustomView для наследования от StackLayout вместо ContentView, он будет работать как положено. Я не уверен, в чем здесь проблема (контекст или что-то еще?).

Изменить: Этот код на самом деле работает нормально... Я тестировал с Xamarin Live Player, и это оказалось реальной проблемой.

0 ответов

Другие вопросы по тегам