Использование DependencyProperty для отображения текста заполнителя в TextBox (UWP) - PullRequest
0 голосов
/ 02 мая 2020

У меня есть пользовательский элемент управления, который состоит только из TextBox, я хочу иметь возможность помещать текст Placeholder в это Textbox. Мой код UserControl выглядит так:

<UserControl
x:Class="Proj.Editors.EditTextControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MemberSuiteConsoleApp.Controls.Editors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid>
    <TextBox x:Name="txtbox"  Width="300" PlaceholderText="{Binding ElementName=txtbox, Path=DataContext.PlaceholderText}"></TextBox>
</Grid>

public sealed partial class EditTextControl : UserControl
    {
        public EditTextControl()
        {
            this.InitializeComponent();
        }

        public string PlaceholderText
        {
            get { return (string)GetValue(PlaceholderTextProperty); }
            set { SetValue(PlaceholderTextProperty, value); }
        }

        // Using a DependencyProperty as the backing store for PlaceholderText.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty PlaceholderTextProperty =
            DependencyProperty.Register("PlaceholderText", typeof(string), typeof(EditTextControl), new PropertyMetadata(""));

    }

И я пытаюсь использовать этот UserControl на своей странице, как это показано на моей странице

 <Grid>
    <editors:EditTextControl PlaceholderText="My placeholder" Height="400"></editors:EditTextControl>
</Grid>

Но по какой-то причине текст заполнителя не отображается в текстовом поле. Что мне здесь не хватает?

1 Ответ

1 голос
/ 03 мая 2020

Вместо этого вы можете использовать x: Bind. Я пробовал и работает.

<TextBox x:Name="txtbox"  Width="300" PlaceholderText="{x:Bind PlaceholderText, Mode=OneWay}"></TextBox>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...