UWP XAMLUserControl: ошибки времени разработки при использовании на странице Xaml, но время выполнения isOK - PullRequest
0 голосов
/ 19 ноября 2018

Приложение C # и UserControl Элементом управления является StackPanel, содержащая TextBox. Довольно тривиально, но я учел другие детали из фактического контроля, чтобы сосредоточиться на проблеме. Существует одно свойство элемента управления Text, которое устанавливает свойство Text элемента TextBlock.

Элемент управления ведет себя, как и ожидалось, при запуске приложения. Свойство Text экземпляра элемента управления на странице XAML в тестовом приложении установлено правильно, как указано на странице XAML.

Но при разработке страницы в Visual Studio свойство Text, заданное на вкладке XAML, не отображается на вкладке "Дизайн".

UserControl XAML:

<UserControl 
x:Name="customTextBlock"
x:Class="MyToolkit.CustomTextBlock"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="30"
d:DesignWidth="340">

<StackPanel  x:Name="spStackPanel"    Margin="0" Padding="0"
                                Width="340" Height="30" 
                                VerticalAlignment="Center" 
                                HorizontalAlignment="Center"
                                 >
    <TextBlock x:Name="tbTextBlock" Text="{Binding ElementName=customTextBlock, Path=Text,Mode=OneWay}"    
                                Height="30"  Margin="0,4,0,0" Padding="0"
                                VerticalAlignment="Center" 
                                HorizontalAlignment="Center"
                                TextAlignment="Center" />
</StackPanel>

Codebehind:

namespace MyToolkit
{
public sealed partial class TextBlockWithBgColor : UserControl, INotifyPropertyChanged
{  
    public TextBlockWithBgColor()
    {
        this.InitializeComponent();
    }

    public static readonly DependencyProperty TextProperty =
      DependencyProperty.Register("Message", typeof(string), typeof(TextBlock), new PropertyMetadata("Fred", null));


    public string Text
    {
        get { return (string)GetValue(TextProperty); }
        set { if (Text != value) { SetValue(TextProperty, value); NotifyPropertyChanged("TextProperty"); } }
    } 

    public event PropertyChangedEventHandler PropertyChanged;

    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
}

Значение по умолчанию, Fred, отображается во время разработки:

enter image description here

На странице XAML это отображается как ошибка (Не удалось найти свойство…):

enter image description here

Спасибо за любую помощь в этом.

...